gpt4 book ai didi

authentication - JAAS - isUserInRole 为 Tomcat 中的所有角色返回 false

转载 作者:行者123 更新时间:2023-11-28 21:52:55 24 4
gpt4 key购买 nike

问题来了

JAAS 领域连接到数据库正常,用户名和密码匹配, session 通过身份验证。然而,这些角色似乎都没有进入校长。 Tomcat 的 isInUserRole 为每个角色返回 false,而 tomcat 安全也看不到它们。

这是Server.xml中的realm配置

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

这是登录配置

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 天后,我快受够了。问题是 CLASS 不是

org.ovasp.java.jaas.RolePrincipal

它的

org.owasp.java.jaas.RolePrincipal

愚蠢!!!

关于authentication - JAAS - isUserInRole 为 Tomcat 中的所有角色返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1668075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com