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[] { "/" };
	}

}




原文地址:https://www.cnblogs.com/shanshen/p/8835271.html