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.

È stato utile?

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!!!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top