У меня есть контроллер покоя, который имеет такие методы:
@RestController
@RequestMapping("/blogs")
class DummyController{
@GetMapping("/{id}")
public String dummy1(@PathVariable Long id){
return "dummy1";
}
@GetMapping
public String dummy2(){
return "dummy2";
}
@GetMapping("/vote/status")
public String dummy3(){
return "dummy3";
}
}
Здесь я хочу разрешить все запросы на dummy1
и dummy2
, но аутентифицировать dummy3
. Как видите, обнаженные дорожки имеют поперечную часть. Поэтому я настраиваю свою конфигурацию безопасности Spring следующим образом:
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers(
"/register",
"/login",
"/logout"
).permitAll()
.antMatchers(
HttpMethod.GET,
"/blogs/vote/status"
).authenticated()
.antMatchers(
HttpMethod.GET,
"/blogs",
"/blogs/{id:\\d+}/**",
"/blogs/search"
).permitAll()
.anyRequest().authenticated()
;
}
Конечно, это не сработало, я могу запросить dummy1
, dummy2
и dummy3
без входа в систему.
Как мне настроить HttpSecurity
для достижения желаемой стратегии аутентификации?