下面是问题,

在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 !!!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top