2016-06-27 14 views
2

Wie kann ich die Authentifizierungslogik in Apache Shiro anpassen? In Spring Security schreibe ich meine eigene Logik in der "() authentifizieren" -Methode in AuthenticationManager:Anpassung der Apache Shiro-Authentifizierung

public Authentication authenticate(Authentication auth) { ... }

Gibt es eine Möglichkeit, das gleiche in Apache Shiro zu tun?

Antwort

1

Hier sind Übersichten über Shiros authentication sequence und customizable realm authentication.

Je nachdem, was Sie tun wollen, eine eigene Implementierung eines CredentialsMatcher könnte der Haken sein, die Sie suchen? Eine detaillierte Antwort auf die Teile, die Sie anpassen müssen, hängt von Ihrem tatsächlichen Authentifizierungsszenario ab.

+0

Vielen Dank für Ihre Antwort! Ich habe eine Web-Anwendung, Login url:/ls action = Login Ich habe gelesen, dass ich Login() -Methode auf SecurityUtils.getSubject() Objekt aufrufen müssen. Ich kann nicht verstehen, wie man Benutzername und Passwort an die login() -Methode übergibt. Soll ich diese login() -Methode innerhalb von Servlet aufrufen und dann an einen sicheren Ort umleiten? – 0bj3ct

+0

Wie hätten Sie es in Spring Security gemacht? – fspinnenhirn

+1

Wenn alles, was Sie tun möchten, ist rufen Sie die 'login()' Methode mit einem Benutzernamen/Passwort ist, einfach eine 'neue UsernamePasswordToken (Benutzername, Passwort)' konstruieren und es als Parameter an 'login() übergeben', wie beschrieben [ hier] (https://shiro.apache.org/authentication.html#Authentication-Authenticating%7B%7BSubjects%7D%7D) – fspinnenhirn