JAAS - isUserInRole restituisce false per tutti i ruoli in Tomcat
-
13-09-2019 - |
Domanda
Ecco la questione,
Il dominio JAAS si connette correttamente al database, il nome utente e la password corrispondono, la sessione viene autenticata.TUTTAVIA, nessuno dei ruoli sembra entrare nel Preside.isInUserRole di Tomcat restituisce false per ogni ruolo e neanche la sicurezza di Tomcat li vede.
Ecco la configurazione del dominio nel Server.xml
<Realm className="org.apache.catalina.realm.JAASRealm"
appName="TomcatTimedLogin"
userClassName="com.tagish.auth.TypedPrincipal"
roleClassNames="org.ovasp.java.jaas.RolePrincipal" />
Ecco il file 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";
};
E in catalina.properties mi riferisco alla configurazione in questo modo
java.security.auth.login.config=file:///C:/config/login.config
Quando avvio l'applicazione ricevo il seguente messaggio nell'output di Debug, non so perché poiché tutte le classi dovrebbero essere accessibili dal server
SEVERE: Class org.ovasp.java.jaas.RolePrincipal not found! Class not added.
Qualsiasi aiuto sarebbe apprezzato.Ho già letto post dopo post e tutorial dopo tutorial e coloro che hanno questo problema non hanno pubblicato la soluzione.
A proposito, sto usando Tomcat 5.5, non una mia scelta, codice legacy, sai com'è!Utilizzo anche il modulo di accesso OWASP (OWASPJaasLoginModule.jar).Questo file jar si trova nella directory server/lib.
Soluzione
Va bene...L'ho risolto da solo...ripeto, MOLTO STUPIDO!Se questo fosse il mio codice sarei arrabbiato con me stesso, ma non lo è, e dopo 4 giorni passati a giocare con questa app, sono quasi stufo.Il problema era che la CLASS non lo è
org.ovasp.java.jaas.RolePrincipal
suo
org.owasp.java.jaas.RolePrincipal
STUPIDO!!!