Hallo zusammen,
ich verwende Apache Shiro für die Security.
Das funktioniert soweit ganz gut, wenn sich ein User per Web anmeldet. Der User gibt seine Loginname und Passwort ein -> ist eingeloggt.
Nun habe ich aber auch ein User, der im Hintergrund Schedules ausführen soll, der sich allerdings nicht via Web GUI authentifiziert.
Auch dieser soll sich aber einloggen bzw. authentifizieren. Die Idee ist hier statisch oder aus der Datenbank einen User zu definieren, der als dieser User dienen soll.
In der Datenbank speichere ich die Passwörter natürlich verschlüsselt ab (SHA512).
Der Login mittels Shiro funktioniert u.a. so:
-> Der Parameter "password" ist bei new UsernamePasswordToken( username, password ) nicht verschlüsselt. Das ist der String, den der User in der GUI zum Einloggen eingibt.
Mein Problem ist nun:
1) Ich hole mir einen User aus der Datenbank
2) Habe das Passwort aber nur verschlüsselt. Aber ich benötige es entschlüsselt, um das auszuführen: new UsernamePasswordToken( username, password ).
Wie könnte ich das am Besten lösen? SHA512 kann ich ja nicht entschlüsseln.
Ich könnte mir vorstellen, dass ich neben den verschlüsselten Passwort noch einen Token in der Datenbank speichere?
Die Frage wäre dann aber wie ich diesen verschlüssele bzw. entschlüssle.
Danke für die Hilfe.
ich verwende Apache Shiro für die Security.
Das funktioniert soweit ganz gut, wenn sich ein User per Web anmeldet. Der User gibt seine Loginname und Passwort ein -> ist eingeloggt.
Nun habe ich aber auch ein User, der im Hintergrund Schedules ausführen soll, der sich allerdings nicht via Web GUI authentifiziert.
Auch dieser soll sich aber einloggen bzw. authentifizieren. Die Idee ist hier statisch oder aus der Datenbank einen User zu definieren, der als dieser User dienen soll.
In der Datenbank speichere ich die Passwörter natürlich verschlüsselt ab (SHA512).
Der Login mittels Shiro funktioniert u.a. so:
Java:
UsernamePasswordToken token = new UsernamePasswordToken( username, password );
Subject currentUser = SecurityUtils.getSubject();
currentUser.login(token);
Mein Problem ist nun:
1) Ich hole mir einen User aus der Datenbank
2) Habe das Passwort aber nur verschlüsselt. Aber ich benötige es entschlüsselt, um das auszuführen: new UsernamePasswordToken( username, password ).
Wie könnte ich das am Besten lösen? SHA512 kann ich ja nicht entschlüsseln.
Ich könnte mir vorstellen, dass ich neben den verschlüsselten Passwort noch einen Token in der Datenbank speichere?
Die Frage wäre dann aber wie ich diesen verschlüssele bzw. entschlüssle.
Danke für die Hilfe.