這裏是問題,JAAS - 的isUserInRole所有角色返回false在Tomcat中
的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目錄中。