Spring Security 4: как игнорировать конечные косые чертыJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Spring Security 4: как игнорировать конечные косые черты

Сообщение Anonymous »

У меня есть приложение Spring Boot, и я использую Spring Security (4.0.4).
Текущая конфигурация безопасности (на Java) для конечных точек позволяет вызывать /some/ конечная точка, но не /some/endpoint/.
Я искал здесь и в документации, но не нашел ничего похожего на переключатель, позволяющий игнорировать конечные пробелы. Например, с помощью Spring MVC я могу сделать следующее:

Код: Выделить всё

@Configuration
public class ServletConfig extends WebMvcConfigurerAdapter {
@Override
public void configurePathMatch(final PathMatchConfigurer configurer) {
configurer.setUseTrailingSlashMatch(false);
}
}
Конечно, приведенный выше код меняет поведение, противоположное тому, что я хочу, но он просто служит демонстрацией того, что я хотел бы сделать с Spring Security.Моя (сокращенная) конфигурация безопасности:

Код: Выделить всё

@Bean
public ResourceServerConfigurer resourceServerConfigurer(final ScopesProperties oauthProperties) {
return new ResourceServerConfigurerAdapter() {
@Override
public void configure(final HttpSecurity http) throws Exception {
http.sessionManagement().sessionCreationPolicy(NEVER).and()
.authorizeRequests()
.antMatchers(GET, "/foo")
.access(oauthProperties.getFooRead())
.antMatchers(GET, "/bar/*")
.access(oauthProperties.getBarRead())
.antMatchers(PUT, "/bar/*")
.access(oauthProperties.getBarWrite())
// everything else
.anyRequest().denyAll();
}
Я знаю, что могу использовать средства сопоставления регулярных выражений, чего мне хотелось бы избегать, главным образом по той же причине, по которой я хотел бы избежать использования одного дополнительного правила для каждой конечной точки только для одобрения. та же конечная точка с косой чертой в конце. Мне пришлось бы сделать это для каждой конечной точки, что подвержено ошибкам. Я также знаю, что могу использовать средства сопоставления ant и установить путь к /foo/**. Проблема заключается в том, что я хочу управлять подресурсами с разными областями действия.
Итак, вопрос в следующем: как указать Spring Security глобально игнорировать конечные косые черты?

Подробнее здесь: https://stackoverflow.com/questions/382 ... ng-slashes
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»