1

同じサーバーに、同じ webapp の 2 つのバージョン (1 つは運用用、もう 1 つは検証用) をデプロイする必要があります。

これら 2 つの Web アプリケーションは、異なるデータベースで認証を使用します。2 つのアプリの 2 つの異なるコンテキストの実装に苦労しています。

server.xmlに次のコードを実装しましたが、認証が機能しなくなりました。

        <Context path="http://localhost:8080/myapp1" docBase="/path/webapps/myapp1.war" debug="0" privileged="true">

          <!--For clustering, please take a look at documentation at:
              /docs/cluster-howto.html  (simple how to)
              /docs/config/cluster.html (reference documentation) -->
          <!--
          <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
          -->

        <Realm className="org.apache.catalina.realm.LockOutRealm">
            <!-- This Realm uses the UserDatabase configured in the global JNDI
            resources under the key "UserDatabase".  Any edits
            that are performed against this UserDatabase are immediately
            available for use by the Realm.  -->
            <Realm className="org.apache.catalina.realm.JDBCRealm"
                driverName="org.postgresql.Driver" digest="MD5"
                connectionURL="jdbc:postgresql://localhost/postgres_prod?user=postgres&amp;password=postgres"
                userTable="utilisateurs" userNameCol="login" userCredCol="password"
                userRoleTable="user_roles" roleNameCol="role_name" resourceName="UserDatabase"/>


            <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
        </Realm>
    </Context>

    <Context path="http://localhost:8080/myapp2" docBase="/path/webapps/myapp2.war" debug="0" privileged="true">

          <!--For clustering, please take a look at documentation at:
              /docs/cluster-howto.html  (simple how to)
              /docs/config/cluster.html (reference documentation) -->
          <!--
          <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
          -->

        <Realm className="org.apache.catalina.realm.LockOutRealm">
            <!-- This Realm uses the UserDatabase configured in the global JNDI
            resources under the key "UserDatabase".  Any edits
            that are performed against this UserDatabase are immediately
            available for use by the Realm.  -->
            <Realm className="org.apache.catalina.realm.JDBCRealm"
                driverName="org.postgresql.Driver" digest="MD5"
                connectionURL="jdbc:postgresql://localhost/postgres_val?user=postgres&amp;password=postgres"
                userTable="utilisateurs" userNameCol="login" userCredCol="password"
                userRoleTable="user_roles" roleNameCol="role_name" resourceName="UserDatabase"/>


            <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
        </Realm>
    </Context>

web.xmlまたはtomcat-users.xmlで何かを変更する必要があるかどうかわかりません。1 つのアプリだけでテストすると、認証が機能します (コンテキストタグが必要ない場合)。

よろしくお願いいたします。

4

1 に答える 1

0

2 つのアプリケーションのcontext.xmlファイル内の 2 つのContextタグの内容を移動しました。別の解決された問題: server.xmlのコードのこの部分では、Tomcat マネージャーとしてログインできませんでした。

于 2013-04-09T15:52:07.377 に答える