Próbuję zaimplementować niestandardowego bezstanową uwierzytelnianie ze sprężyną bezpieczeństwa wykonując ten articleWiosna zabezpieczeń nie dzwoni mój filtru niestandardowego uwierzytelniania przy uruchamianiu testów JUnit
Problem mam skierowane jest zwyczaj, że mój filtr nie jest nazywany ramami, nawet gdy moja SecurityConfig wygląda prawie tak samo jak w poprzednim linku (nieco prostsze):
@Configuration
@EnableWebMvcSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
@Qualifier("appAuthenticationProvider")
private AuthenticationProvider authenticationProvider;
@Autowired
@Qualifier("appAuthenticationFilter")
private AppAuthenticationFilter appAuthenticationFilter;
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable().
sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests().anyRequest().authenticated()
.and()
.anonymous().disable()
.exceptionHandling().authenticationEntryPoint(unauthorizedEntryPoint());
http.addFilterBefore(appAuthenticationFilter, BasicAuthenticationFilter.class);
}
@Bean
public AuthenticationEntryPoint unauthorizedEntryPoint() {
return (request, response, authException) -> response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
}
}
i nie pisać kod authenticationProvider i appAuthenticationFilter jako dawne działa poprawnie (mogę zalogować się używając punktu końcowego/logowania), a drugie tylko implementuje GenericFilterBean i nie jest nawet wywoływane.
Każda pomoc będzie bardzo ceniona!