SpringSecurity
1.继承extends WebSecurityConfigurerAdapter
①重写方法:
@Override
protected void configure(HttpSecurity http) throws Exception
②密码加密
@Bean
public PasswordEncoder passwordEncoder(){
return new BCryptPasswordEncoder();
}
③:使用记住我
@Autowired
PersistentTokenRepository tokenRepository;
@Bean
public PersistentTokenBasedRememberMeServices getPersistentTokenBasedRememberMeServices() {
PersistentTokenBasedRememberMeServices tokenBasedservice = new PersistentTokenBasedRememberMeServices(
"remember-me", userDetailsService, tokenRepository);
return tokenBasedservice;
}
替换记住我第二种方案,使用JdbcTokenRepositoryImpl:
@Bean
public PersistentTokenRepository persistentTokenRepository() {
JdbcTokenRepositoryImpl tokenRepositoryImpl = new JdbcTokenRepositoryImpl();
tokenRepositoryImpl.setDataSource(dataSource);
return tokenRepositoryImpl;
}
④:存储凭据在数据库中,所以要在UserDetailsService中配置DaoAuthenticationProvider来处理
//创建一个类实现此方法
@Autowired @Qualifier("customUserDetailsService") UserDetailsService userDetailsService;
@Bean
public DaoAuthenticationProvider authenticationProvider() {
DaoAuthenticationProvider authenticationProvider = new DaoAuthenticationProvider();
authenticationProvider.setUserDetailsService(userDetailsService);
authenticationProvider.setPasswordEncoder(passwordEncoder());
return authenticationProvider;
}
2.初始化类注册 springSecurityFilter,穿件一个类继承extends AbstractSecurityWebApplicationInitializer:
public class SecurityWebApplicationInitializer extends AbstractSecurityWebApplicationInitializer {
}
3.配置springmvc:
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.yiibai.springmvc")
public class AppConfig extends WebMvcConfigurerAdapter{
重写此方法:
@Override
public void configureViewResolvers(ViewResolverRegistry registry)
4.spring初始化器类:
public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] { AppConfig.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
return null;
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
}

浙公网安备 33010602011771号