Разрешение безопасности весеннего antMatcherВсе не работает должным образом.
Я запускаю загрузочное приложение Spring с kotlin
Когда я пытаюсь получить доступ к
/service-status/v1/task/status
Я добавил этот URL в разрешении на сопоставление муравьев, все в коде ниже
это дает мне неавторизованную ошибку
@Configuration
@EnableWebSecurity
class SecurityConfig(val authenticationEntryPoint: AuthenticationEntryPoint) : WebSecurityConfigurerAdapter() {
@Autowired
@Throws(Exception::class)
fun configureGlobal(auth: AuthenticationManagerBuilder) {
auth.inMemoryAuthentication()
.withUser("user").password(passwordEncoder().encode("pass"))
.authorities("ROLE_USER")
}
@Throws(Exception::class)
override fun configure(http: HttpSecurity?) {
http?.csrf()?.disable()
?.authorizeRequests()
?.antMatchers(
"/",
"/service-status/v1/task/status",
"/*.html",
"/*.js",
"/favicon.ico",
"/**/*.html",
"/**/*.css",
"/**/*.png",
"/webjars/**",
"/configuration/**",
"/v2/**",
"/swagger-resources/**",
"/**/*.js")?.permitAll()
?.anyRequest()?.authenticated()
?.and()
?.httpBasic()
?.authenticationEntryPoint(authenticationEntryPoint)
}
@Bean
fun passwordEncoder(): PasswordEncoder {
return BCryptPasswordEncoder()
}
}
получая ошибку следующим образом
{
"timestamp": "2019-05-09T08:37:25.976+0000",
"status": 401,
"error": "Unauthorized",
"message": "Unauthorized",
"path": "/service-status/v1/task/status"
}
Точка входа аутентификации
@Component
class AuthenticationEntryPoint : BasicAuthenticationEntryPoint(){
override fun commence(request: HttpServletRequest?, response: HttpServletResponse?, authException: AuthenticationException?) {
response?.addHeader("WWW-Authenticate", "Basic realm=$realmName")
response?.status = HttpServletResponse.SC_UNAUTHORIZED
response?.writer?.println("HTTP Status 401 - " + authException?.message)
}
override fun afterPropertiesSet() {
realmName = "service-status"
super.afterPropertiesSet()
}
}
Как это исправить ???