У меня есть приложение Spring Boot 2 с защитой Spring, как указано ниже:
@SpringBootApplication(exclude = [(SecurityAutoConfiguration::class)])
class UntappdCqrsApplication
fun main(args: Array<String>) {
runApplication<UntappdCqrsApplication>(*args)
}
и класс конфигурации
@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
class TokenConfiguration(
val jwtTokenProvider: JwtTokenProvider
) : WebSecurityConfigurerAdapter() {
override fun configure(http: HttpSecurity) {
http.csrf().disable();
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
http.authorizeRequests()
.antMatchers("/users/signup").permitAll()
.anyRequest().authenticated()
http.apply(JwtTokenConfigurer(jwtTokenProvider));
}
}
Существует две конечные точки: POST users/signup
и GET users/test
.
Согласно моей конфигурации, / signup не должен требовать аутентификации и / test должен, но обе конечные точки доступны без какой-либо аутентификации.
Если я добавлю @EnableWebSecurity
в мой класс TokenConfiguration
, Spring теперь генерирует пароль по умолчанию, и обе конечные точки теперь защищены.
Я думаю, что я что-то здесь упускаю, но у меня естьпонятия не имею, что