Da kann ich user, passwort und rolle angeben, das funktioniert einwandfrei. Jetzt möchte ich umstellen, sodass die User in einer DB Tabelle (Standardname: Users) gespeichert werden.
Dazu habe ich folgendes gefunden:
Code:
<bean id="authenticationDao" class="org.springframework.security.userdetails.jdbc.JdbcDaoImpl">
<property name="dataSource" ref="dataSource" />
<property name="usersByUsernameQuery">
<value>
SELECT username, password, enabled
FROM User
WHERE username=?
</value>
</property>
</bean>
Mir ist nicht klar, wo ich da dann die Rollen der User setzen kann, Ich hab unter JdbcDaoImpl (Spring Security 3.0.5.RELEASE API)
gelesen, dass es auch noch eine zweite Tabelle (Authorities Table) geben kann und das ist mir nicht klar, kann ich das nicht in eine Tabelle geben!?
Vielleicht hat das von euch schon mal gemacht,
Vielen Dank und lg,
Generic1
OK, ich hab die Antwort im spring Buch Spring in Action auf Seite 260 gefunden (stichwort authoritiesByUsernameQuery, JdbcDaoImpl)
Was mich jetzt noch interessieren würde ist folgendes, Wenn sich ein User mit seinen Daten angemeldet hat, dann bekommt er in der Regel eine email zugesant, in der er dann mittels klicken auf einen Link die Registrierung aktivieren kann:
Was mich interessieren würde ist, was da im hintergrund passiert -> email senden ist mir klar aber wie sich der Link zusammenstellt (vor allem die letzte langen Zeichenfolge) und wenn ich auf den Link klicke dann komm ich ja in den Loginbereich der Applikation -> weiß jemand wie das genau funktioniert.
Vielen Dank,
lg
Generic1
Hast du denn keine Idee, wie man so was lösen könnte?
Was könnte das für eine lange Zahlenfolge sein?
Das Verfahren an sich ist nicht so schwer.... denk mal kurz drüber nach und präsentiere hier deine Idee. Die könne wir dann mal diskutieren.
Mir ist die vorgehensweise nicht klar: ich habe eine Login- form - wenn diese korrekt ausgefüllt wurde und der Registrieren - Button geklickt wurde, leite ich auf eine andere Seite um, auf der dann eben steht:
Es wurde eine Email versendet ....
In die Datenbank habe ich die Registrierungsdaten gespeichert, aber das Flag in der DB - aktiviert - ist noch auf false.
Wenn dann auf den Aktivierungslink geklickt wurde, muss ich das aktiviert flag in der DB auf true setzen, und das ist mir eben nicht klar, wie man das machen kann.
Der Link, auf den geklickt wird, entspricht einer generischen Seite, die also alle aufrufen. Nachdem hier keine PKI verwendet wird (wofür auch?), ist das also kein public key, sondern einfach ein generierter Identifier, der dir die vorläufigen Anmeldedaten verknüpft. Das könnte eine UUID sein, die du also als Parameter mitschickst.
Über diese ID findest du also den User in deiner DB, der freigeschalten werden soll... done....