JAAS - isUserInRole retourne false pour tous les rôles dans Tomcat
-
13-09-2019 - |
Question
Voici la question,
Le royaume JAAS se connecte à l'amende de base de données, le nom d'utilisateur et mot de passe correspondance, la session est authentifié. Cependant, aucun des rôles semblent entrer dans le principal. retourne isInUserRole de Tomcat faux pour chaque rôle, et la sécurité tomcat ne les voit pas non plus.
Voici la configuration du domaine dans le Server.xml
<Realm className="org.apache.catalina.realm.JAASRealm"
appName="TomcatTimedLogin"
userClassName="com.tagish.auth.TypedPrincipal"
roleClassNames="org.ovasp.java.jaas.RolePrincipal" />
Voici le 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";
};
Et catalina.properties je me réfère à la configuration comme ceci
java.security.auth.login.config=file:///C:/config/login.config
Quand commencer l'application que je reçois le message suivant dans la sortie de débogage, ne sais pas pourquoi que toutes les classes doivent être accessibles par le serveur
SEVERE: Class org.ovasp.java.jaas.RolePrincipal not found! Class not added.
Toute aide serait appréciée. Je l'ai déjà lu poste après poste et tutoriel après tutoriel, et ceux qui ont ce problème, ne pas solution affichée.
BTW, j'utilise Tomcat 5.5, pas mon choix, le code de l'héritage, vous savez comment il est! J'utilise également le module de connexion OWASP (OWASPJaasLoginModule.jar). Ce fichier jar se trouve dans le répertoire du serveur / lib.
La solution
D'accord ... Je résolu moi-même ... encore une fois, très STUPIDE! Si tel était mon code, je serais en colère contre moi-même, mais ce n'est pas, et après 4 jours de vissage autour de cette application, je suis proche de marre. Le problème était que la classe n'est pas
org.ovasp.java.jaas.RolePrincipal
son
org.owasp.java.jaas.RolePrincipal
STUPIDE !!!