Added WebSecurityConfiguration
This commit is contained in:
+52
@@ -0,0 +1,52 @@
|
||||
package de.twomartens.wahlrecht.configuration;
|
||||
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
||||
import org.springframework.security.core.userdetails.User;
|
||||
import org.springframework.security.core.userdetails.UserDetails;
|
||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
|
||||
import org.springframework.security.web.SecurityFilterChain;
|
||||
|
||||
@Configuration
|
||||
@EnableWebSecurity // (1)
|
||||
public class WebSecurityConfiguration {
|
||||
|
||||
public static final String ROLE_USER = "USER";
|
||||
|
||||
@Bean
|
||||
public SecurityFilterChain securityFilterChain(@NonNull HttpSecurity http) throws Exception { // (2)
|
||||
http
|
||||
.authorizeHttpRequests()
|
||||
.requestMatchers("/wahlrecht/v1/**")
|
||||
.permitAll()
|
||||
.and()
|
||||
.authorizeHttpRequests()
|
||||
.requestMatchers("/resources/**")
|
||||
.permitAll()
|
||||
.and()
|
||||
.csrf()
|
||||
.disable()
|
||||
.authorizeHttpRequests()
|
||||
.requestMatchers("/wahlrecht/v1/election", "/wahlrecht/v1/party")
|
||||
.authenticated() // (3)
|
||||
.and()
|
||||
.formLogin(); // (7)
|
||||
return http.build();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public UserDetailsService userDetailsService() {
|
||||
UserDetails user = User.withDefaultPasswordEncoder()
|
||||
.username("user")
|
||||
.password("password")
|
||||
.roles(ROLE_USER)
|
||||
.build();
|
||||
return new InMemoryUserDetailsManager(user);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user