1 Spring boot+Spring Security 4 配置整合实例 本例所覆盖的内容: 1. 使用Spring Security 管理用户身份认证、登录退出 2. 用户密码加密及验证 3. 采用数据库的方式实现 Spring Security 的remember-me 功能 4. 获取登录用户信息。 本例所使用的框架: 1. Spring boot 2. Spring MVC 3. Spring Security 4. Spring Data JPA 5. thymeleaf 说明: 1. 本文针对采用Spring boot 微框架之用户,完全采用Java config,不讨论 xml 配置。 2. 本例代码是完整的,请勿随意删减,否则不能运行。 一、 整合Spring Security 在 pom.xml 中加入如下片段:
org.springframework.security spring-security-web org.springframework.security spring-security-config 二、 配置Spring Security 几乎所有配置都在下面这个文件中完成: 2 @Configuration @EnableWebMvcSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private CustomUserDetailsService customUserDetailsService;//code1 @Autowired @Qualifier("dataSource1") private DataSource dataSource1; //code2 @Override protected void configure(HttpSecurity http) throws Exception { //允许所有用户访问”/”和”/home” http.authorizeRequests().antMatchers("/", "/home").permitAll() //其他地址的访问均需验证权限 .anyRequest().authenticated() .and() .formLogin() //指定登录页是”/login” .loginPage("/login") .permitAll() //登录成功后可使用loginSuccessHandler()存储用户信息,可选。 .successHandler(loginSuccessHandler())//code3 .and() .logout() //退出登录后的默认网址是”/home” .logoutSuccessUrl("/home") .permitAll() .invalidateHttpSession(true) .and() //登录后记住用户,下次自动登录 //数据库中必须存在名为persistent_logins的表 //建表语句见 code15 .rememberMe() .tokenValiditySeconds(1209600) //指定记住登录信息所使用的数据源 .tokenRepository(tokenRepository());//code4 } @Autowired public void configureGlobal(...