„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > So passen Sie das Anmeldeformular in Spring Security an, um eine benutzerdefinierte Datenbank zu verwenden.

So passen Sie das Anmeldeformular in Spring Security an, um eine benutzerdefinierte Datenbank zu verwenden.

Veröffentlicht am 31.07.2024
Durchsuche:257

How to customize the login form in Spring Security to use a custom database.

Um das Anmeldeformular in Spring Security für die Verwendung einer benutzerdefinierten Datenbank anzupassen, können Sie die folgenden Schritte ausführen:

Erstellen Sie einen benutzerdefinierten UserDetailsService:

Implementieren Sie die UserDetailsService-Schnittstelle, um Benutzerdetails aus Ihrer benutzerdefinierten Datenbank zu laden.

Überschreiben Sie die Methode „loadUserByUsername“, um Ihre Datenbank nach den Benutzerdetails abzufragen.

Spring-Sicherheit konfigurieren:

Definieren Sie in Ihrer Spring Security-Konfiguration die UserDetailsService-Bean.

Konfigurieren Sie den AuthenticationManager für die Verwendung Ihres benutzerdefinierten UserDetailsService.

Passen Sie das Anmeldeformular an, indem Sie die URL der Anmeldeseite und die URL für die Anmeldeverarbeitung angeben.

Implementieren Sie das benutzerdefinierte Anmeldeformular:

Erstellen Sie eine JSP- oder HTML-Datei für das benutzerdefinierte Anmeldeformular.

Enthalten Sie Eingabefelder für den Benutzernamen und das Passwort sowie eine Schaltfläche zum Senden.

Verwenden Sie die in der Spring Security-Konfiguration angegebene Anmeldeverarbeitungs-URL, um das Formular zu senden.

Hier ist eine Beispielimplementierung:

  1. Erstellen Sie einen benutzerdefinierten UserDetailsService

öffentliche Klasse CustomUserDetailsService implementiert UserDetailsService {
@Autowired
private JdbcTemplate jdbcTemplate;

@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
    String query = "SELECT * FROM users WHERE username = ?";
    User user = jdbcTemplate.queryForObject(query, new Object[]{username}, new UserRowMapper());
    if (user == null) {
        throw new UsernameNotFoundException("User not found");
    }
    return user;
}

}

  1. Spring-Sicherheit konfigurieren

@Aufbau
@EnableWebSecurity
öffentliche Klasse SecurityConfig erweitert WebSecurityConfigurerAdapter {
@Autowired
private CustomUserDetailsService customUserDetailsService;

@Autowired
private PasswordEncoder passwordEncoder;

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth.userDetailsService(customUserDetailsService)
        .passwordEncoder(passwordEncoder);
}

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        .authorizeRequests()
            .antMatchers("/login").permitAll()
            .anyRequest().authenticated()
        .and()
        .formLogin()
            .loginPage("/login")
            .loginProcessingUrl("/login")
            .defaultSuccessUrl("/welcome")
            .failureUrl("/login?error")
            .permitAll();
}

}

  1. Implementieren Sie das benutzerdefinierte Anmeldeformular

Erstellen Sie eine Datei login.jsp (oder login.html) in Ihrem Verzeichnis src/main/webapp/WEB-INF/views (oder einem entsprechenden Speicherort):




Anmeldung


Anmeldung




Nutzername:



Passwort:


Anmeldung


Ungültiger Benutzername oder Passwort.
/c:if

In diesem Beispiel wird das Anmeldeformular an die /login-URL gesendet, bei der es sich um die in der Spring Security-Konfiguration angegebene Anmeldeverarbeitungs-URL handelt.

Durch Befolgen dieser Schritte können Sie das Anmeldeformular in Spring Security anpassen, um eine benutzerdefinierte Datenbank für die Benutzerauthentifizierung zu verwenden.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/fullstackjava/how-to-customize-the-login-form-in-spring-security-to-use-a-custom-database-20mh?1Falls vorhanden Verstoß, wenden Sie sich zum Löschen bitte an [email protected]
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3