3

ここに問題があります。

JAAS レルムがデータベースに正常に接続し、ユーザー名とパスワードが一致し、セッションが認証されます。ただし、どの役割もプリンシパルに入っていないようです。Tomcat の isInUserRole はすべてのロールに対して false を返し、Tomcat セキュリティもそれらを認識しません。

Server.xml のレルム構成は次のとおりです。

<Realm  className="org.apache.catalina.realm.JAASRealm"
        appName="TomcatTimedLogin"
        userClassName="com.tagish.auth.TypedPrincipal"
        roleClassNames="org.ovasp.java.jaas.RolePrincipal" />

ここにlogin.configがあります

TomcatTimedLogin
{
    org.owasp.java.jaas.TomcatTimedLogin required
    useDS=true
    dsJNDI="jdbc/resourceName"
        dbDriver="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
        dbURL="jdbc:sqlserver://server\\DBSERVER;databaseName=DBName"
        dbUser="username"
        dbPassword="password"
        debug=true 
        loginTable="loginTable" 
        clippingLevel="3" 
        interval="10"
        loginQuery="SELECT UserID,Password FROM Users WHERE LogonUserName=? AND RetirementDate is null"
        rolesQuery="SELECT Role.RoleDescription FROM User_Role,Role WHERE User_Role.UserID=? AND User_Role.RoleID=Role.RoleID";
};

そして catalina.properties で、このような構成を参照します

java.security.auth.login.config=file:///C:/config/login.config

アプリケーションを起動すると、デバッグ出力に次のメッセージが表示されます。サーバーからすべてのクラスにアクセスできる必要があるため、理由がわかりません

SEVERE: Class org.ovasp.java.jaas.RolePrincipal not found! Class not added.

どんな助けでも大歓迎です。私はすでに投稿ごとに投稿を読み、チュートリアルごとにチュートリアルを読みましたが、この問題を抱えている人は解決策を投稿していません.

ところで、私は Tomcat 5.5 を使用していますが、私の選択ではなく、レガシー コードです。OWASP ログイン モジュール (OWASPJaasLoginModule.jar) も使用します。この jar ファイルは、server/lib ディレクトリにあります。

4

1 に答える 1

1

わかりました...私はそれを自分で解決しました...再び、非常に愚かです!これが私のコードだったら、私は自分自身に腹を立てるでしょうが、そうではありません.4日間このアプリをいじった後、私はうんざりしています. 問題は、CLASSがそうではないことでした

org.ovasp.java.jaas.RolePrincipal

これは

org.owasp.java.jaas.RolePrincipal

バカ!!!

于 2009-11-03T16:10:48.920 に答える