[JAVA] Fügen Sie mit Spring Security Ihre eigenen Authentifizierungselemente hinzu

Überblick

Sie können Spring Security auch verwenden, wenn Sie versuchen, die Authentifizierung mit Spring Boot zu implementieren. Spring Security verfügt über einen Mechanismus zur automatischen Authentifizierung, wenn Sie Elemente bei der Anmeldung festlegen. Grundsätzlich wird die Authentifizierung jedoch mit einem Satz von Benutzernamen und Kennwort durchgeführt. Ich werde schreiben, was zu tun ist, wenn Sie andere Elemente zur Authentifizierung hinzufügen möchten.

Annahmen usw.

Implementierungsbeispiel

Fügen Sie authenticationProvider zu SecurityConfig hinzu. Legen Sie für authenticationProvider das später beschriebene eindeutig implementierte "AuthenticationProviderImpl" fest. Legen Sie außerdem authenticationProvider in configureGlobal fest.

SecurityConfig.java


  @Autowired
  private AuthenticationProviderImpl authenticationProvider;
  
  @Autowired
  public void configureGlobal(
    AuthenticationManagerBuilder auth,
    @Qualifier("userService") UserDetailsService userDetailsService,
    PasswordEncoder passwordEncoder) throws Exception {

    authenticationProvider.setUserDetailsService(userDetailsService);
    authenticationProvider.setPasswordEncoder(passwordEncoder);
    auth.eraseCredentials(true)
      .authenticationProvider(authenticationProvider);
  }

AuthenticationProvider muss unabhängig implementiert werden. Ich habe der Tabelle eine Statusspalte hinzugefügt, um anzuzeigen, dass Benutzer, die nicht "aktiv" sind, nicht authentifiziert werden.

AuthenticationProviderImpl.java


@Component
public class AuthenticationProviderImpl extends DaoAuthenticationProvider {
  @Override
  protected void additionalAuthenticationChecks(UserDetails userDetails, UsernamePasswordAuthenticationToken authentication) throws AuthenticationException {
    super.additionalAuthenticationChecks(userDetails, authentication);
    User user = (User) userDetails;

    //Zusätzliche Bedingungen
    if (!user.getStatus().equals("active")) {
      throw new AccountStatusNotActiveException("Status is not active");
    }
  }

  public static class AccountStatusNotActiveException extends AuthenticationException {
    public AccountStatusNotActiveException(String message) {
      super(message);
    }
  }

  @Override
  protected void doAfterPropertiesSet() {}
}

andere Referenzen

Recommended Posts

Fügen Sie mit Spring Security Ihre eigenen Authentifizierungselemente hinzu
Rufen Sie Ihre eigene Methode mit PreAuthorize in Spring Security auf
Implementierte Authentifizierungsfunktion mit Spring Security ②
Implementierte Authentifizierungsfunktion mit Spring Security ③
Implementierte Authentifizierungsfunktion mit Spring Security ①
Zertifizierung / Autorisierung mit Spring Security & Thymeleaf
DB-Authentifizierung mit Spring Security und Hashing mit BCrypt
Erreichen Sie die BASIC-Authentifizierung mit Spring Boot + Spring Security
Informationen zur Spring Security-Authentifizierung
Erstellen Sie Ihr eigenes Dienstprogramm mit Thymeleaf mit Spring Boot
[Einführung in Spring Boot] Authentifizierungsfunktion mit Spring Security
Anmeldefunktion mit Spring Security
Modul mit Spring Boot hinzufügen
Spring Security-Nutzungsnotiz Authentifizierung / Autorisierung
Erstellen Sie mit JMeter Ihren eigenen Sampler
Spring Boot Tutorial Verwenden der Spring Security-Authentifizierung
Erfahren Sie mehr über die Architektur der Spring Security-Authentifizierungsverarbeitung
Beim Testen der Formularauthentifizierung mit Spring Security tritt ein 404-Fehler auf
So erstellen Sie mit Spring Boot einen eigenen Controller, der / error entspricht
Setzen Sie das Spring Security-Authentifizierungsergebnis auf JSON
Spring Security ruft meinen AuthenticationProvider zweimal auf und die Authentifizierung schlägt fehl
Verwenden Sie Spring Security JSP-Tags mit FreeMarker
Wie Spring Security mit Hello World funktioniert
Hash-Passwörter mit Spring Boot + Spring Security (mit Salt, mit Stretching)
[Java] Artikel zum Hinzufügen einer Validierung mit Spring Boot 2.3.1.
Fügen Sie Ihrem Projekt mit Swift PM Pakete hinzu
Erstellen Sie mit Spring Boot 2.0 einen Spring Cloud Config Server mit Sicherheit
[Java] Sortieren Sie ArrayList nach Elementen Ihrer eigenen Klasse
Führen Sie nach der Standardauthentifizierung mit Spring Boot eine beliebige Verarbeitung aus.
Spring Boot mit Spring Security Filter-Einstellungen und Suchtpunkten
Rufen Sie Ihre eigene Klasse auf, die unter lib mit Rails erstellt wurde
Behandeln Sie das gehashte Passwort mit BCryptPasswordEncoder von Spring Security in Perl
Erstellen Sie mit Spring Security 2.1 eine einfache Demo-Site mit Spring Security
Versuchen Sie, mit Keycloak mit Spring Security SAML (Spring 5) zu arbeiten.
Erstellen Sie eine API-Schlüsselauthentifizierung für die Web-API in Spring Security
Neuer Mitarbeiter hat versucht, mit Spring Security eine Authentifizierungs- / Autorisierungsfunktion von Grund auf neu zu erstellen