【发布时间】:2018-05-12 17:16:12
【问题描述】:
我有一个带有 Spring 安全性的 Spring Boot 2 应用程序,如下所示:
@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 应该,但是两个端点都可以在没有任何身份验证的情况下访问。
如果我在 TokenConfiguration 类中添加 @EnableWebSecurity,Spring 现在会生成一个默认密码,并且两个端点现在都受到保护。
我想我在这里遗漏了一些东西,但我不知道是什么
【问题讨论】:
标签: spring spring-boot spring-security