【问题标题】:JAAS - isUserInRole returns false for all roles in TomcatJAAS - isUserInRole 为 Tomcat 中的所有角色返回 false
【发布时间】:2010-12-12 16:33:10
【问题描述】:

问题来了,

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目录下。

【问题讨论】:

    标签: authentication tomcat jaas tomcat5.5


    【解决方案1】:

    好的...我自己解决了...再次,非常愚蠢!如果这是我的代码,我会生自己的气,但事实并非如此,在玩了这个应用程序 4 天之后,我快受够了。问题是 CLASS 不是

    org.ovasp.java.jaas.RolePrincipal
    

    org.owasp.java.jaas.RolePrincipal
    

    愚蠢!!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-13
      • 1970-01-01
      • 2013-05-16
      • 1970-01-01
      • 1970-01-01
      • 2016-05-06
      • 1970-01-01
      • 2016-07-29
      相关资源
      最近更新 更多