# Auth. per Tomcat



## qwertz1234 (6. Okt 2008)

hallo,

ich möchte gerne meine apps per authentifizierung mit realm sichern.
laut dokus, howtos usw. habe ich in der standard server.xml (tomcat 6) das tag


```
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase" digest="MD5"/>
```

mit digest="MD5" erweitert.

in der tomcat-useres habe ich einen eintrag angelegt für die app testapp mit user test und md5 hashwert für das passwort


```
<role rolename="testapp"/>
  <user username="test" password="9b65212239db88f82507c071b35c1116" roles="testapp"/>
```

nach einem neustart und dem folgenden eintrag in die web.xml der testapp


```
<security-constraint>
        <web-resource-collection>
            <web-resource-name>testapp</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>testapp</role-name>
        </auth-constraint>
    </security-constraint>
    <login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>testapp</realm-name>
    </login-config>
```

funktioniert das ganze.

ich kann mich anmelden mit dem passwort welches denn hashwert ergibt.

meine frage ist jetzt für was ist die angabe: <auth-method>digest</auth-method>??
ich verstehe es nicht so ganz. hab jetzt schon einige sachen gelesen aber ihgend wie verstehe es nicht.
wenn ich digest angebe funktioniert es nämlich nicht. warum?

besten dank und grüße qwertz1234


----------



## qwertz1234 (7. Okt 2008)

hallo,

keiner ne ahnung? bzw. kann keiner die zusammenhänge erklären?

grüße und danke qwertz1234


----------



## gex (7. Okt 2008)

Also momentan verwendest du ja 
	
	
	
	





```
<auth-method>BASIC</auth-method>
```

Bei BASIC wird das Passwort mit BASE64 codiert zum Server übertragen - also Plaintext (kann decodiert werden).

DIGEST ist wesentlich sicherer als BASIC-Auth.

DIGEST wird jedoch nicht von allen Webservern unterstützt.

Aus Benutzersicht gibt es keine Unterschiede.

Die untenstehenden Links erklären ja eigentlich alles - oder wo genau liegt die Frage?

http://en.wikipedia.org/wiki/Basic_access_authentication

http://en.wikipedia.org/wiki/Digest_access_authentication

http://www.roseindia.net/javacertification/wcd-guide/authentical_type.shtml


----------



## qwertz1234 (8. Okt 2008)

hallo,

mein problem liegt im zusammenhang der konfiguration von tomcat also der hinterlegung des parameters digest="MD5" und hinterlegung von <auth-method>BASIC</auth-method> in der webapp. das ganze muss exklusiv gesehen werden, oder? ich kann zum einen die passwörter in der tomcat-user.xml gehasht hinterlegen und zusätzlich kann ich den transport der daten der realm auth. schützen. ist das so? dertomcat kümmert sich dann darum das das klatext passwort geshasht wird und mit dem hash in der xml datei verglichen wird?

grüße qwertz1234


----------



## gex (8. Okt 2008)

bin zwar kein experte auf dem gebiet, aber das stimmt so schienbar nicht ganz.

siehe
http://www.nabble.com/auth-mode=DIGEST-and-MD5-digested-passwords-td4131183.html

das heisst, wenn du DIGEST-Auth verwendest musst du scheinbar anstelle von {cleartext-password} 
aus allen informationen den hash generien - {username}:{realm}:{cleartext-password} 

siehe
http://tomcat.apache.org/tomcat-6.0-doc/realm-howto.html#Digested Passwords

hoffe die nicht konkrete antwort hilft dir trotzdem weiter (sorry habe zur zeit keinen tomcat installiert...)


----------

