0

サーバー構成ツールを使用して新しい戦争を展開した後、このエラーが発生します。元の戦争エラー持続に戻そうとしました。

Tomcat 7.0.30 ワークライト サーバー 6.1.0.2

   javax.servlet.ServletException: Worklight Console initialization failed.Logged Exception:     java.lang.RuntimeException: conf/authenticationConfig.xml contains duplicated realm named: wl_anonymousUserRealm
    com.worklight.core.auth.impl.AuthenticationFilter.verifyServletInitialized(AuthenticationFilter.java:317)
    com.worklight.core.auth.impl.AuthenticationFilter.doFilter(AuthenticationFilter.java:111)

xml はデフォルトで構築され、私のレルムはサーバーの context.xml で定義されます。

    <!-- Licensed Materials - Property of IBM
         5725-G92 (C) Copyright IBM Corp. 2006, 2013. All Rights Reserved.
         US Government Users Restricted Rights - Use, duplication or
         disclosure restricted by GSA ADP Schedule Contract with IBM Corp. -->  

<!-- Uncomment the next element to protect the worklight console and the first section in securityTests below. -->
 <staticResources>
<!-- <resource id="worklightConsole" securityTest="WorklightConsole">
        <urlPatterns>/console*</urlPatterns>
     </resource> 
    -->
    <resource id="subscribeServlet" securityTest="SubscribeServlet">
        <urlPatterns>/subscribeSMS*</urlPatterns>
    </resource>
</staticResources> 
以下のテストでは、要素を application-descriptor.xml にも追加する必要があります。-->
 <securityTests>
    <!-- 
    <customSecurityTest name="WorklightConsole">
        <test realm="WorklightConsole" isInternalUserID="true"/>
    </customSecurityTest>

    <mobileSecurityTest name="mobileTests">
        <testAppAuthenticity/> 
        <testDeviceId provisioningType="none" />
        <testUser realm="myMobileLoginForm" />
    </mobileSecurityTest>

    <webSecurityTest name="webTests">
        <testUser realm="myWebLoginForm"/>
    </webSecurityTest>

    <customSecurityTest name="customTests">
        <test realm="wl_antiXSRFRealm" step="1"/>
        <test realm="wl_authenticityRealm" step="1"/>
        <test realm="wl_remoteDisableRealm" step="1"/>
        <test realm="wl_anonymousUserRealm" isInternalUserID="true" step="1"/>
        <test realm="wl_deviceNoProvisioningRealm" isInternalDeviceID="true" step="2"/>
    </customSecurityTest>
    -->
    <customSecurityTest name="SubscribeServlet">
        <test isInternalUserID="true" realm="SubscribeServlet"/>
    </customSecurityTest>


    <customSecurityTest name="AgentSecurityTest">
        <test isInternalUserID="true" realm="FbitnAgentRealm"/>
    </customSecurityTest>

</securityTests> 

<realms>
    <!--realm name="ConsumerRealm" loginModule="AnonymousLoginModule" >
        <className>com.worklight.integration.auth.AdapterAuthenticator</className>
        <parameter name="login-function" value="ConsumerPolicy.onAuthRequired"/>
        <parameter name="logout-function" value="ConsumerPolicy.onLogout"/>
    </realm-->
    <realm loginModule="StrongDummy" name="SampleAppRealm">
        <className>com.worklight.core.auth.ext.FormBasedAuthenticator</className>
    </realm>

    <realm loginModule="requireLogin" name="WorklightConsole">
        <className>com.worklight.core.auth.ext.FormBasedAuthenticator</className>
        <onLoginUrl>/console</onLoginUrl>
    </realm>

    <realm loginModule="rejectAll" name="SubscribeServlet">
        <className>com.worklight.core.auth.ext.HeaderAuthenticator</className>          
    </realm>
    <!-- For websphere -->
    <!-- realm name="WASLTPARealm" loginModule="WASLTPAModule">
        <className>com.worklight.core.auth.ext.WebSphereFormBasedAuthenticator</className>
        <parameter name="login-page" value="/login.html"/>
        <parameter name="error-page" value="/loginError.html"/>
    </realm -->
    <realm name="FbitnAgentRealm" loginModule="FbitnAgentLogin">
        <className>com.fbitn.WorklightCustomAuthenticator</className>
    </realm>
</realms>

<loginModules>
    <loginModule name="FbitnAgentLogin">
        <className>com.fbitn.WorklightCustomLogin</className>
    </loginModule>
    <!--loginModule name="AnonymousLoginModule">
        <className>com.worklight.core.auth.ext.NonValidatingLoginModule</className>
    </loginModule-->

    <!--loginModule name="HeaderLoginModule" canBeResourceLogin="true" isIdentityAssociationKey="true" audit="true"-->

    <loginModule name="StrongDummy">
        <className>com.worklight.core.auth.ext.NonValidatingLoginModule</className>
    </loginModule>

    <loginModule name="requireLogin">
        <className>com.worklight.core.auth.ext.SingleIdentityLoginModule</className>
    </loginModule>

    <loginModule name="rejectAll">
        <className>com.worklight.core.auth.ext.RejectingLoginModule</className>
    </loginModule>

    <!-- For websphere -->
    <!-- loginModule name="WASLTPAModule">
        <className>com.worklight.core.auth.ext.WebSphereLoginModule</className>
    </loginModule -->

    <!-- For enabling SSO with no-provisioning device authentication -->
    <!-- <loginModule name="MySSO" ssoDeviceLoginModule="WLDeviceNoProvisioningLoginModule">
        <className>com.worklight.core.auth.ext.NonValidatingLoginModule</className>
    </loginModule> -->
    <!-- For enabling SSO with auto-provisioning device authentication -->
    <!-- <loginModule name="MySSO" ssoDeviceLoginModule="WLDeviceAutoProvisioningLoginModule">
        <className>com.worklight.core.auth.ext.NonValidatingLoginModule</className>
    </loginModule> -->
</loginModules>

4

1 に答える 1

1

サーバーには 2 つのバージョンがありました。Tomcat/Worklight/app および Tomcat/webapps/app. サーバー構成ツールが最初のデプロイに使用されたかどうかはわかりませんが、2 回目のデプロイでは使用されました。アプリのコンテンツを Worklight フォルダーから削除し、元のフォルダーを webapps の下に残しました。server.xml は両方のディレクトリーを読み取るように構成されており、必要なのは 1 つだけです。

これは、worklight-jee-library.jar が tomcat/lib と tomcat/Worklight/app の下にインストールされたためであることがわかりました。lib にあるものは、Worklight 6.1 がインストールされたときに、インストール・マネージャーによってそこに置かれたと思います。

于 2014-10-03T15:40:20.863 に答える