8

server.xml ホスト セクションのレルム設定を次のように設定しました。

<Realm  className="org.apache.catalina.realm.JDBCRealm"  driverName="org.gjt.mm.mysql.Driver"  
         connectionURL="jdbc:mysql://localhost:3306/test" connectionName="test" connectionPassword="test"  
             userTable="users" userNameCol="user_name" userCredCol="user_pass" userRoleTable="user_roles" 
       roleNameCol="user_role" />

また、web.xml で:

<security-role>
    <role-name>ADMIN</role-name>
</security-role>

<security-constraint>  
    <web-resource-collection>  
        <web-resource-name>critical</web-resource-name>  
        <url-pattern>/admin/*</url-pattern>  
        <http-method>GET</http-method>  
        <http-method>POST</http-method>  
    </web-resource-collection>  
    <auth-constraint>  
        <role-name>ADMIN</role-name>  
    </auth-constraint>  
</security-constraint>  

<login-config>  
    <auth-method>FORM</auth-method>  
    <form-login-config>  
        <form-login-page>/login.jsp</form-login-page>  
        <form-error-page>/error.jsp</form-error-page>  
    </form-login-config>  
</login-config> 

そして、データベース化されたセットアップがあります。ただし、login.jsp が呼び出されると、正しいパスワードを入力しても、error.jsp にリダイレクトされました。

プロセス中に何が問題なのかを見つける方法があるかどうか知りたいです。問題を解決する可能性のあるEclipseまたはその他のヒントでそれを行うことはできますか?

4

2 に答える 2

16

レルム認証ステップからデバッグ情報を取得するには、次の手順に従います。

server.xml で Realm を定義するときは、debug="9" を定義に追加します (もちろん、詳細度を下げるために小さい数値を使用することもできます)。

<Realm  className="org.apache.catalina.realm.JDBCRealm"  driverName="org.gjt.mm.mysql.Driver"  
   connectionURL="jdbc:mysql://localhost:3306/test" connectionName="test" connectionPassword="test"  
   userTable="users" userNameCol="user_name" userCredCol="user_pass" userRoleTable="user_roles" 
   roleNameCol="user_role" debug="9" />

また、これを logging.properties ファイルに追加する必要があります。

org.apache.catalina.realm.level = ALL
org.apache.catalina.realm.useParentHandlers = true
org.apache.catalina.authenticator.level = ALL
org.apache.catalina.authenticator.useParentHandlers = true

ログのバッファリングを防ぐために、これを追加する必要がある場合もあります。その場合は、デバッグが終了した後に忘れずに削除してください。

1catalina.org.apache.juli.FileHandler.bufferSize = -1

これで、レルムのデバッグ ログが catalina.out ファイルに記録されるはずです。

于 2013-12-18T01:31:48.627 に答える