Я хочу разрешить доступ для неаутентифицированных только по нескольким путям: / Everyone1 / что-то1, / Everyone2 / что-то2 и / Everyone3 / **.
Для остальных путей я хочу, чтобы разрешались только аутентифицированные запросы.
Пока у меня есть "класс WebSecurityConfig расширяет WebSecurityConfigurerAdapter" с:
@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
JwtAuthenticationFilter jwtAuthenticationFilter = new JwtAuthenticationFilter(
jwtUtils, this.accessCookie, this.selectedRoleScopeCookie);
httpSecurity.addFilterBefore(jwtAuthenticationFilter, UsernamePasswordAuthenticationFilter.class);
httpSecurity.cors().and().csrf().disable();
httpSecurity.authorizeRequests()
.antMatchers("/everyone1/something1", "/everyone2/something2", "/everyone3/**")
.permitAll()
.anyRequest().authenticated()
.and().httpBasic().disable();
}
и в "jwtAuthenticationFilter" я устанавливаю аутентификацию как:
private void setAuthentication2(String username, String someData, boolean authenticated) {
User user = new User(username, "", new ArrayList<>());
UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(user, null, new ArrayList<>());
if (!authenticated) {
authentication.setAuthenticated(false);
}
AuthenticationDetails authenticationDetails = new AuthenticationDetails(someData);
authentication.setDetails(authenticationDetails);
SecurityContextHolder.getContext().setAuthentication(authentication);
}
К сожалению, вышеуказанная конфигурация блокирует каждый запрос, как аутентифицированный, так и не прошедший аутентификацию.
любая помощь будет оценена.
Спасибо!