При настройке безопасности моего приложения Spring Boot я хотел защитить части API в зависимости от введенного там PathVariable. Моя текущая конфигурация выглядит следующим образом:
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
//not important
@Override
public void configure(HttpSecurity http) throws Exception {
http.cors();
http.authorizeRequests()
.mvcMatchers("/api").authenticated()
.mvcMatchers("/api/TEST").hasAuthority("SCOPE_dep:TEST")
.and().oauth2ResourceServer().jwt();
}
}
В конечной точке 'api / {PathVariable}' я хочу настроить ее, убедившись, что кто-то с полномочиями 'SCOPE_dep: TEST' может получить доступ конечная точка 'api / TEST', кто-то с полномочиями 'SCOPE_dep: TEST2' может получить доступ к конечной точке 'api / TEST2', даже если разрешено использовать более одной такой конечной точки для пользователя, который имеет несколько из этих полномочий.
Is Есть ли способ сделать это, используя тип подстановочного знака / совпадения, о котором я не знаю, или единственная возможность жестко закодировать все эти различные авторитеты?