Я думаю, что-то вроде этого:
@Configuration
@EnableWebSecurity
@Order(SecurityProperties.BASIC_AUTH_ORDER)
@Slf4j
public class SecurityConfig extends WebSecurityConfigurerAdapter {
private static final String[] AUTH_WHITE_LIST = {
// swagger-ui
"/v2/api-docs"
, "/swagger-resources"
, "/swagger-resources/**"
, "/configuration/security"
, "/swagger-ui.html"
, "/webjars/**"
, "/security/**"
// spring actuator
, "/actuator"
, "/actuator/**"
};
@Override
protected void configure(HttpSecurity http) throws Exception {
http.anonymous().and()
.authorizeRequests().antMatchers(AUTH_WHITE_LIST).permitAll();
}
}
И, пожалуйста, позаботьтесь о Порядке, безопасность пружин основана на файлах, и в основном порядок важен. Если какой-либо другой сопоставитель отклонит запрос, он не получит этот конфиг.
Для упомянутой вами проблемы,
Я думаю, что вы должны написать собственный фильтр, чтобы справиться с этим. разрешить только "/ documents" с некоторым дополнительным путем, но прекратить доступ "/documents".
Я лично предлагаю вам изменить дизайн URL, может быть, в этой ситуации изменить его на "/ documents / all" лучше, чем "/ documents"? хотя это немного противоречит остальным учебникам в Интернете.
Код взят из одного из моих проектов, но некоторая не относительная часть была удалена. Надеюсь, это поможет.