[JAVA] Wie man Spring Security authentifizierte Benutzerinformationen außer Benutzer-ID und Kennwort gibt und wie man darauf verweist

Überblick

In meinem Memo, dem Spring Security-bezogenen Tutorial, heißt es, dass die zur Authentifizierung verwendete Benutzer-ID und das Kennwort aus der Sitzung bezogen werden können, aber ich habe mich nur über andere Parameter gewundert. Es passierte nichts, ich musste der Klasse, die UserDetails implementierte, nur einen Getter hinzufügen. ..

Einfaches Klassenbeispiel


public class User {
    private String userId;
    private String password;
    private String hoge;
    //getter,Setter weggelassen
}

public class UserDetailsImpl implements UserDetails {

    private final User user;
    
    public UserDetailsImpl(User user) {
        this.user = user;
    }

    public String getHoge() {
        return user.getHoge();
    }
    //Auslassen von Methoden, die überschrieben werden sollten
}

Informationen zur Authentifizierungsmethode finden Sie in dem Artikel, den ich zuvor geschrieben habe Ich habe die Verarbeitung der DB-Anmeldeauthentifizierung mit Spring Security (mithilfe von MyBatis) implementiert. Ich habe die Verarbeitung der DB-Anmeldeauthentifizierung in Spring Security (unter Verwendung von MyBatis) Teil 2 implementiert

Zugriff auf die in der Sitzung gespeicherten Benutzerinformationen mit dem Controller, nachdem der Benutzer wie oben beschrieben authentifiziert wurde. Verwenden Sie die Annotation "Authentifizierungsprinzipal"

@Controller
public class Controller {
    
    @RequestMapping("/")
    public index(@AuthenticationPrincipal UserDetailsImpl userDetails) {
        System.out.println(userDetails.getUserId) // userId
        System.out.println(userDetails.getPassword) //password
        System.out.println(userDetails.getHoge) //hoge
    }

Bonus, wie man von Thymeleaf verweist

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
      xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4"> <!--Fügen Sie dies hinzu und verwenden Sie Spring Security von Thymeleaf-->

<!--Kürzung-->
<body>
  <h>Hallo,<span sec:authentication="principal.userId"></span>Herr.</h> <!-- principal.Kann durch den Namen der Mitgliedsvariablen referenziert werden-->
</body>




Recommended Posts

Wie man Spring Security authentifizierte Benutzerinformationen außer Benutzer-ID und Kennwort gibt und wie man darauf verweist
Es war überraschend einfach. So aktualisieren Sie Benutzerinformationen, ohne ein Kennwort einzugeben
So implementieren Sie den Authentifizierungsprozess durch Angabe von Benutzername und Kennwort in Spring Boot
[Android 9.0 Pie] Beispiel für den Aufruf einer anderen Zeichenfolge.xml als Aktivität und Fragment
[Spring Boot] So verweisen Sie auf die Eigenschaftendatei