Die XdevHashConverter konvertieren einen Wert aus einer UI-Komponente je nach Converter in einen bestimmten Hash-Wert. Diese Funktionalität kann bei einer XdevFieldGroup genutzt werden um zum Beispiel ein Passwort in die Datenbank als Hash-Wert zu schreiben.
...
- Für die Verwendung der HashConverter muss die RapidClipse Framework [AA] Facet eingebunden sein
- Werden die Konverter in einer Komponente in einer XdevFieldGroup verwendet, so wird immer gleich der gehashte Wert zurückgeliefert.
- Wird ein bereits bestehender Datensatz einer XdevFieldGroup zugewiesen welcher schon einen Hash-Wert besitzt so wird dieser nicht erneut in einen neuen Hash umgewandelt. Dafür sorgt eine interne Prüfung.
- Die Prüfung ob es sich bereits um einen Hash handelt oder nicht kann nur über die länge Länge der Wertes HEX-Werte realisiert werden. Wird also ein Passwort beim Neuanlegen eines Datensatzes vergeben welches die exakte länge des eingestellten HashConverters besitzt wird dieser Wert nicht gehasht. Es muss also über Validatoren sichergestellt werden, das Passworter mit exakt dieser Länge nicht vergeben werden können.
- Folgende Längenbegrenzungen gelten für die einzelnen HashConverter:
- MD5HashConverter = 32 stellig
- SHA1HashConverter = 40 stellig
- SHA2HashConverter = 64 stellig
- PBKDF2WithHmacSHA1HashConverter = 32 stellig
Anwendung:
HashConverter Instantiieren
Code Block language java theme Eclipse linenumbers true MD5HashConverter md5converter = new MD5HashConverter(); //oder SHA1HashConverter sha1HashConverter = new SHA1HashConverter(); //oder SHA2HashConverter sha2HashConverter = new SHA2HashConverter(); //oder PBKDF2WithHmacSHA1HashConverter pbkdf2WithHmacSHA1HashConverter = new PBKDF2WithHmacSHA1HashConverter();
Zuweisen des Konverters zu einem XdevTextField
Code Block language java theme Eclipse linenumbers true SHA2HashConverter sha2HashConverter = new SHA2HashConverter(); XdevTextField xdevTextField = new XdevTextField(); xdevTextField.setConverter(sha2HashConverter);
Abrufen des konvertierten Wertes
Code Block language java theme Eclipse linenumbers true Object convertedValue = xdevTextField.getConvertedValue();
Ist das XdevTextField teil einer FieldGroup so wird automatisch beim "speichernSpeichern" der konvertierte (Hash) Wert zurückgeliefert
...