Я работаю над своим первым проектом Spring Security и изо всех сил пытаюсь решить эту ошибку. Я хочу, чтобы каждый URL-адрес, начинающийся с / user, был авторизован, а затем получил ответ, связанный с URL-адресом.
Это код конфигурации:
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/user/**").hasAnyRole("USER", "ADMIN")
.anyRequest().permitAll()
.and().httpBasic();
}
Когда я получаю доступ к / user с помощью почтальона, я получаю ожидаемый ответ. Но когда я пытаюсь получить доступ к / user / foo на почтальоне, я получаю код ошибки 401: неавторизовано даже с действительным именем пользователя и паролем.
{
"timestamp": "2020-07-11T12:38:17.805+00:00",
"status": 401,
"error": "Unauthorized",
"message": "",
"path": "/user/foo"
}
То же самое происходит с / admin / ... URL-адресами, / admin доступен, но / admin / foo не авторизован.
URL-адреса: / user / {username} и / admin / {username}. Считая foo именем пользователя. Я не уверен, правильно ли я использовал подстановочный знак.
Также / user / {username} применяется для методов GET, PUT, POST и DELETE.