Я очень плохо знаком с безопасностью Spring, мой класс WebSecurityConfiguration.kt выглядит следующим образом:
@Configuration
@EnableWebSecurity
class WebSecurityConfiguration: WebSecurityConfigurerAdapter() {
@Autowired
lateinit var authenticationEntryPoint: WebSecurityEntryPoint
@Autowired
@Throws(Exception::class)
fun configureGlobal(auth: AuthenticationManagerBuilder) {
auth.inMemoryAuthentication()
.withUser("user").password(passwordEncoder().encode("du"))
.authorities(Role.ADMIN.poziom)
}
@Throws(Exception::class)
override fun configure(http: HttpSecurity) {
http.authorizeRequests()
.antMatchers("/securityNone").permitAll()
.antMatchers("/marka/insert").authenticated() // but I beted this would help
.anyRequest().authenticated() // I know this should cover all requests
.and()
.httpBasic()
.authenticationEntryPoint(authenticationEntryPoint)
.and()
.formLogin()
}
@Bean
fun passwordEncoder(): PasswordEncoder {
return BCryptPasswordEncoder()
}
}
И моя проблема в том, что когда я делаю какие-либо запросы, я всегда получаю ошибку 401 или 403 (иногда 401 и иногда 403 в тех же случаях) код ошибки, но кроме выполнения запросов GET, которые возвращают код 200 и, кажется, работают. Также вход через форму входа в браузере работает. Я использую почтальон, чтобы сделать запрос, я использую basi c Auth и да, я нажимаю кнопку предварительного просмотра, прежде чем сделать запрос
Что я делаю не так? Пожалуйста, помогите друзьям. Без решения этой проблемы я не могу работать над чем-то еще в этом проекте.
[ПРАВИТЬ 30 III 2020]
Я вроде решил проблему частично:
Запросы работают, если они выполняются с помощью команды front-end или curl с использованием опции -u user: du, поэтому полная команда для JSON выглядит следующим образом:
{
"id" : -1,
"nazwa" : "Mercedes",
"models" : [ ]
}
полная команда curl будет:
curl -u user:du -X PUT -d @mercedes.json http://localhost:8091/marka/insert -H "Content-Type: application/json"
если mercedes. json находится в каталоге, из которого была вызвана команда.
НО
Запрос на отправку через почтальона по-прежнему не работает.
Есть идеи, друзья?