JAAS - 为的isUserInRole在Tomcat中的所有角色返回false
-
13-09-2019 - |
题
下面是问题,
在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文件位于服务器/ lib目录。
解决方案
好了...我解决我自己......再次,非常愚蠢!如果这是我的代码,我将自己的气,但它不是,以后这个程序拧左右4天,我靠近够了。问题是,该类不是
org.ovasp.java.jaas.RolePrincipal
其
org.owasp.java.jaas.RolePrincipal
STUPID !!!
不隶属于 StackOverflow