2009-11-03 4 views
3

Voici la question,JAAS - isUserInRole retourne false pour tous les rôles dans Tomcat

Le royaume JAAS se connecte à l'amende de base de données, le nom d'utilisateur et mot de passe correspondent, la session est authentifiées. Cependant, aucun des rôles ne semble entrer dans le principal. IsInUserRole de Tomcat renvoie false pour chaque rôle, et la sécurité de tomcat ne les voit pas non plus.

Voici la configuration du royaume 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 celui-ci

java.security.auth.login.config=file:///C:/config/login.config 

Lorsque démarrer l'application, je reçois le message suivant dans la sortie de débogage, je ne sais pas pourquoi car toutes les classes devraient être accessibles par le serveur

SEVERE: Class org.ovasp.java.jaas.RolePrincipal not found! Class not added. 

Toute aide serait appréciée. J'ai déjà lu post après publication et tutoriel après tutoriel, et ceux qui ont ce problème, n'ont pas de solution postée. Btw, j'utilise Tomcat 5.5, pas mon choix, le code hérité, vous savez comment c'est! J'utilise également le module de connexion OWASP (OWASPJaasLoginModule.jar). Ce fichier jar se trouve dans le répertoire server/lib.

Répondre

1

D'accord ... Je l'ai résolu moi-même ... encore une fois, TRÈS STUPIDE! Si c'était mon code, je serais en colère contre moi-même, mais ce n'est pas le cas, et après 4 jours de vissage avec cette application, je suis près d'en avoir marre. Le problème était que la classe n'est pas

org.ovasp.java.jaas.RolePrincipal 

son

org.owasp.java.jaas.RolePrincipal 

STUPIDE !!!

Questions connexes