Hallo
Habe ein Problem und ich sehe die lösung nicht und habe keine Idee mehr was ich noch ausprobieren kann.
Ich möchte einen Tomcat 9 mit einer Datasource Realm auf einer H2 Datenbank erstellen.
Funktioniert eigentlich, sobald ich das Passwort aber verschlüsselt ablegen will, funktioniert der Login nicht mehr.
H2 Version 2.1.214
Apache Tomcat 9.0.65
openjdk version "17.0.4.1"
die Relevanten Teile der server.xml
die Relevanten Teile aus der web.xml
Datenbank anlegen
User Passwort und User Roles einfügen
Ohne Verschlüsseltes Passwort funktioniert es, also müsste es doch an der Verschlüsselung liegen.
Für mich sieht das speichern des Passwortes und der CredentialHandler vom Tomcat aber gut aus.
Sieht jemand gerade was ich da mache ?
Besten Dank für die Hilfe
Habe ein Problem und ich sehe die lösung nicht und habe keine Idee mehr was ich noch ausprobieren kann.
Ich möchte einen Tomcat 9 mit einer Datasource Realm auf einer H2 Datenbank erstellen.
Funktioniert eigentlich, sobald ich das Passwort aber verschlüsselt ablegen will, funktioniert der Login nicht mehr.
H2 Version 2.1.214
Apache Tomcat 9.0.65
openjdk version "17.0.4.1"
die Relevanten Teile der server.xml
XML:
<GlobalNamingResources>
<Resource auth="Container" driverClassName="org.h2.Driver" maxIdle="3" maxTotal="10" name="milliways" username="milliways" password="milliways" type="javax.sql.DataSource" url="jdbc:h2:/home/is/testdb/milliways;SCHEMA=MILLIWAYS" />
</GlobalNamingResources>
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.DataSourceRealm" dataSourceName="milliways" roleNameCol="role_name" userCredCol="user_pass" userNameCol="user_name" userRoleTable="user_roles" userTable="users">
<CredentialHandler className="org.apache.catalina.realm.MessageDigestCredentialHandler"
algorithm="SHA-256"
iterations="111"
encoding="UTF-8"
/>
</Realm>
</Realm>
die Relevanten Teile aus der web.xml
XML:
<login-config>
<auth-method>FORM</auth-method>
<realm-name>milliways</realm-name>
<form-login-config>
<form-login-page>/login/login.jsp</form-login-page>
<form-error-page>/login/loginError.jsp</form-error-page>
</form-login-config>
</login-config>
<security-constraint>
<display-name>protected</display-name>
<web-resource-collection>
<web-resource-name>protected</web-resource-name>
<url-pattern>/protected/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>protected</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<security-role>
<role-name>protected</role-name>
</security-role>
Datenbank anlegen
SQL:
create schema MILLIWAYS;
set schema MILLIWAYS;
create table users (
user_name varchar(15) not null primary key,
user_pass varchar(50) not null
);
create table user_roles (
user_name varchar(15) not null,
role_name varchar(15) not null,
primary key (user_name, role_name)
);
User Passwort und User Roles einfügen
SQL:
insert into users (user_name,user_pass) values ('ingo',HASH('SHA-256',STRINGTOUTF8('passwort'),111));
insert into user_roles (user_name,role_name) values('ingo','protected');
Ohne Verschlüsseltes Passwort funktioniert es, also müsste es doch an der Verschlüsselung liegen.
Für mich sieht das speichern des Passwortes und der CredentialHandler vom Tomcat aber gut aus.
Sieht jemand gerade was ich da mache ?
Besten Dank für die Hilfe