Как использовать Spring Security .antMatchers () с несколькими путями - PullRequest
0 голосов
/ 08 марта 2019

Есть ли разница, если я использую Spring Securitys "antMatchers ()" - метод, подобный

.antMatchers(
    "/",
    "/app/**",
    "/profiles/**",
    "/captcha/**",
    c440_START_PAGE,
    FAVICON_ICO,
    C440_LOGIN,
    getCustomerRessourcePath(),
    getCustomerWebRessourcePath(),
    "/services/userService/**",
    "/services/applicationService/**",
    "/services/textContentService/**",
    "/services/textContentBlockService/**",
    "/services/menuItemService/**",
    "/services/calculatorService/**"
).permitAll()

или вместо

.antMatchers("/").permitAll()
.antMatchers("/app/**").permitAll()
.antMatchers("/profiles/**").permitAll()
.antMatchers("/captcha/**").permitAll()
.antMatchers(c440_START_PAGE).permitAll()
.antMatchers(FAVICON_ICO).permitAll()
.antMatchers(C440_LOGIN).permitAll()
.antMatchers(getCustomerRessourcePath()).permitAll()
.antMatchers(getCustomerWebRessourcePath()).permitAll()
.antMatchers("/services/userService/**").permitAll()
.antMatchers("/services/applicationService/**").permitAll()
.antMatchers("/services/textContentService/**").permitAll()
.antMatchers("/services/textContentBlockService/**").permitAll()
.antMatchers("/services/menuItemService/**").permitAll()
.antMatchers("/services/calculatorService/**").permitAll()

?Я новичок в Spring Security и не уверен в этом ...

1 Ответ

2 голосов
/ 08 марта 2019

Оба они одинаковы с вашей реализацией. Но второй способ обеспечивает большую гибкость в предоставлении авторизации на основе ролей и т. Д.

Например, если вы хотите, чтобы роль ADMIN была авторизована для доступа к "/", а роль USER была авторизована для доступа к "/app/*", то это будет достигнуто следующим образом:

.antMatchers("/").hasRole("ADMIN")
.antMatchers("/app/**").hasRole("USER")

Обратите внимание, что .permitAll() необходимо добавлять только один раз в конце для каждого набора шаблонов с одинаковой конфигурацией и не обязательно в каждой строке.

Одна из сигнатур antMatchers метода -

public C antMatchers(java.lang.String... antPatterns)

Это означает, что вы можете передать один или несколько шаблонов методу. Подробнее об этом можно прочитать в документации для весенних *1017* 1018 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...