From 10a5439fc50f549701090f15bb1330b0d1ed28a9 Mon Sep 17 00:00:00 2001 From: ulrich@undisclosed <ulrich@ulrich-vaio> Date: Tue, 19 May 2020 13:13:28 +0000 Subject: [PATCH] In Arbeit: Piktogramme, Abmelden, Stile verfeinert --- src/java/de/uhilger/um/TomcatDigester.java | 39 ++++++++++++++++++++++++++++++++++++--- 1 files changed, 36 insertions(+), 3 deletions(-) diff --git a/src/java/de/uhilger/um/TomcatDigester.java b/src/java/de/uhilger/um/TomcatDigester.java index 4e86b72..75108a2 100644 --- a/src/java/de/uhilger/um/TomcatDigester.java +++ b/src/java/de/uhilger/um/TomcatDigester.java @@ -18,9 +18,14 @@ package de.uhilger.um; +import java.security.NoSuchAlgorithmException; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.apache.catalina.realm.MessageDigestCredentialHandler; + /** - * Ein Digester für die Nutzerverwaltung, der die Klasse - * RealmBase von Tomcat zum Verschlüsseln nutzt + * Ein Digester für die Nutzerverwaltung, der die Klasse + * RealmBase von Tomcat zum Verschlüsseln nutzt * * @author Copyright (c) Ulrich Hilger, http://uhilger.de * @author Published under the terms and conditions of the @@ -33,8 +38,36 @@ @Override public String digest(String text, String algorithm, String encoding) { + /* + Die Methode RealmBase.Digest ist mit dem Hinweis 'unused' ab + Tomcat 9 entfernt worden. Das, obwohl die Tomcat-eigene Dokumentation + diese Methode ausdruecklich nennt, vgl. "Digested Passwords" + auf http://tomcat.apache.org/tomcat-10.0-doc/realm-howto.html + + Als Ersatz wird der MessageDigestCredentialHandler verwendet + */ //return RealmBase.Digest(text, algorithm, encoding); - return text; + //return text; + MessageDigestCredentialHandler mh = new MessageDigestCredentialHandler(); + try { + mh.setAlgorithm(algorithm); + } catch (NoSuchAlgorithmException ex) { + Logger.getLogger(TomcatDigester.class.getName()).log(Level.SEVERE, null, ex); + } + mh.setEncoding(encoding); + return mh.mutate(text); + } + + @Override + public boolean matches(String inputCredentials, String storedCredentials, String algorithm, String encoding) { + MessageDigestCredentialHandler mh = new MessageDigestCredentialHandler(); + try { + mh.setAlgorithm(algorithm); + } catch (NoSuchAlgorithmException ex) { + Logger.getLogger(TomcatDigester.class.getName()).log(Level.SEVERE, null, ex); + } + mh.setEncoding(encoding); + return mh.matches(inputCredentials, storedCredentials); } } -- Gitblit v1.9.3