Bonjour tout le monde , en fait je suis entrain d'apprendre Spring Security . j'ai rencontrer un probleme en essayant d'ajouter un filtre d'authentification sur la classe configuration , il souligne authentificationManager et me genere cette erreur :
'addFilter(javax.servlet.Filter)' in 'org.springframework.security.config.annotation.web.builders.HttpSecurity' cannot be applied to '(spring.test.security.JWTAuthentificationFilter)'
voici les classes concernées :
- config :
package spring.test.security; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; import spring.test.services.UserDetailsServiceImpl; import static org.hibernate.criterion.Restrictions.and; @EnableWebSecurity public class config extends WebSecurityConfigurerAdapter { UserDetailsServiceImpl userDetailsService; @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.userDetailsService(userDetailsService).passwordEncoder(getBcp()); } @Override protected void configure(HttpSecurity http) throws Exception { http.csrf().disable(); http .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() .authorizeRequests() .antMatchers("/login**").permitAll() .antMatchers("/gestionUser/**").hasAuthority("ADMIN") .antMatchers("/user/**").hasAuthority("USER") .anyRequest().authenticated(); http.addFilter(new JWTAuthentificationFilter(authenticationManager())); } @Bean public BCryptPasswordEncoder getBcp(){ return new BCryptPasswordEncoder(); } }
- JWTAuthenticationFilter
package spring.test.security; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; public class JWTAuthenticationFilter extends UsernamePasswordAuthenticationFilter { AuthenticationManager authenticationManager; public JWTAuthenticationFilter(AuthenticationManager authenticationManager) { this.authenticationManager = authenticationManager; } }
Afficher la suite