Ich bin derzeit die Konfiguration meiner CAS Server v5.0.2 zu verwenden Datenbank-Authentifizierung, insbesondere mit der Methode Encode, mit der CAS-Eigenschaftendatei. Unten sind die relevanten Eigenschaftskonfigurationen aus der Eigenschaftendatei:CAS DB Authentifizierung "encode" Passwortverschlüsselung kann nicht mit Datenbank Passwort verschlüsselt mit Spring Security ShaPasswordEncoder
cas.authn.jdbc.encode[0].sql=SELECT * FROM public.vt_user WHERE email=?
cas.authn.jdbc.encode[0].driverClass=org.postgresql.Driver
cas.authn.jdbc.encode[0].url=jdbc:postgresql://localhost:5432/tracking
cas.authn.jdbc.encode[0].user=postgres
cas.authn.jdbc.encode[0].password=postgres
cas.authn.jdbc.encode[0].saltFieldName=salt
cas.authn.jdbc.encode[0].passwordFieldName=password
cas.authn.jdbc.encode[0].healthQuery=SELECT 1 FROM INFORMATION_SCHEMA.TABLES
cas.authn.jdbc.encode[0].numberOfIterations=1
cas.authn.jdbc.encode[0].numberOfIterationsFieldName=
cas.authn.jdbc.encode[0].staticSalt=
cas.authn.jdbc.encode[0].algorithmName=SHA-1
cas.authn.jdbc.encode[0].dialect=org.hibernate.dialect.PostgreSQLDialect
cas.authn.jdbc.encode[0].passwordEncoder.type=DEFAULT
cas.authn.jdbc.encode[0].passwordEncoder.characterEncoding=UTF-8
cas.authn.jdbc.encode[0].passwordEncoder.encodingAlgorithm=SHA-1
Die Datenbank, die ich verbinde, ist eine PostgreSQL DB. Die Kennwörter wurden zuvor mithilfe von 3.2.5 ShaPasswordEncoder von Spring Security mit der Standardstärke SHA-1 plus einem Salt-Wert codiert. Ich habe die Konfiguration der CAS-DB-Authentifizierung getestet, indem ich gültige Anmeldeinformationen auf der Standard-Anmeldeseite des CAS-Servers eingegeben habe. Die Authentifizierung schlägt jedoch immer fehl und gibt "Ungültige Anmeldeinformationen" zurück. Außerdem ist mir bereits bekannt, dass der ShaPasswordEncoder 3.2.5 veraltet ist, aber ich plane nicht, seine Implementierung zu ändern. Die Protokolle zeigen, dass der Benutzername erfolgreich aus der Benutzertabelle abgefragt werden kann, aber die Passwörter aus der Tabelle und der Eingabe stimmen nicht überein.
Jetzt suche ich nach einem Ansatz zur Lösung dieses Problems. Ich bin noch relativ neu für CAS, und ich schätze die dringend benötigte Hilfe sehr. Vielen Dank!
Ich kann deine Frage nicht beantworten, aber ich kann dir sagen, dass das, was du zu erreichen versuchst, sowieso sinnlos ist wegen deiner Verwendung von SHA1 und der Tatsache, dass du überhaupt nicht über den Hash iterierst! Sie sollten wirklich bcrypt oder PBKDF2 verwenden, da sie viel langsamer und viel schwieriger zu finden sind Kollisionen. –
Hey @ Luke Park. Momentan suche ich nicht nach der Passwortcodierungsimplementierung, die für die Datenbank verwendet wird, aber ich suche nach einer Möglichkeit, den Datenbankauthentifizierungshandler zu modifizieren oder anzupassen. Aber danke für deine Eingabe! –