Per abilitare l'autenticazione BASIC (con prompt del browser per username e password) in una web application occorre agire sul web.xml e quindi sull'application server.
In Tomcat è possibile utilizzare il file tomcat-users.xml presente nella directory conf di Tomcat.
Ad esempio supponiamo di avere il seguente codice nel web.xml della nostra web app:
Quindi nel Tomcat devono essere definite le credenziali dell'utente APP_ADMIN.
Tipicamente nel file tomcat-users.xml si inseriranno le seguenti indicazioni:
Come possiamo vedere l'inconveniente di questo approccio è che la password è memorizzata in chiaro dentro Tomcat.
E' possibile cifrare la password utilizzando i seguenti algoritmi di cifratura
Digitando quindi da prompt di dos il comando
digest.bat -a md5 qawsedrf
premendo invio si ottiene la risposta
qawsedrf:d1c2dcfcbfd41ce1103a25475b64f7a5
Quindi dobbiamo inserire la password cifrata al posto di quella in chiaro nel tomcat-users.xml.
Ora dobbiamo comunicare a Tomcat che la modalità di controllo password deve passare per un hash md5 della password digitata dall'utente.
Nel file conf/server.xml occorre cercare il Realm UserDataBaseRealm ed inserire l'attributo digest="md5" in questo modo:
In Tomcat è possibile utilizzare il file tomcat-users.xml presente nella directory conf di Tomcat.
Ad esempio supponiamo di avere il seguente codice nel web.xml della nostra web app:
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Richiesta autenticazione per gestione utenze</realm-name>
</login-config>
<security-constraint>
<web-resource-collection>
<web-resource-name>restricted methods</web-resource-name>
<url-pattern>/index.jsf</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>APP_ADMIN</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<role-name>APP_ADMIN</role-name>
</security-role>
Quindi nel Tomcat devono essere definite le credenziali dell'utente APP_ADMIN.
Tipicamente nel file tomcat-users.xml si inseriranno le seguenti indicazioni:
<role rolename="LEASING_ADMIN"/>
<user password="qawsedrf" roles="APP_ADMIN" username="master"/>
Come possiamo vedere l'inconveniente di questo approccio è che la password è memorizzata in chiaro dentro Tomcat.
E' possibile cifrare la password utilizzando i seguenti algoritmi di cifratura
- SHA;
- MD2;
- MD5
Digitando quindi da prompt di dos il comando
digest.bat -a md5 qawsedrf
premendo invio si ottiene la risposta
qawsedrf:d1c2dcfcbfd41ce1103a25475b64f7a5
Quindi dobbiamo inserire la password cifrata al posto di quella in chiaro nel tomcat-users.xml.
Ora dobbiamo comunicare a Tomcat che la modalità di controllo password deve passare per un hash md5 della password digitata dall'utente.
Nel file conf/server.xml occorre cercare il Realm UserDataBaseRealm ed inserire l'attributo digest="md5" in questo modo:
<Realm className="org.apache.catalina.realm.LockOutRealm">
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase" digest="md5"/>
</Realm>
Nessun commento:
Posta un commento