Spring Boot整合Security系列步骤及问题排查(一)—— 起步

1.pom.xml加入依赖:

<!--security-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>

2.WebSecurityConfig:

@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

/**
* 加密解密官方实现
* @return
*/
@Bean
public PasswordEncoder passwordEncoder(){
return new BCryptPasswordEncoder();
}

}

3.User implements UserDetails:

// 只显示implements UserDetails后Override方法
// 暂时只有status字段,所以所有账户有效通用一个判断
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return null;
}

@Override
public String getUsername() {
return this.userName;
}

/**
* 账户是否过期
*
* @return
*/
@Override
public boolean isAccountNonExpired() {
// return false;
return getUserStatusFlag();
}

/**
* 账户是否冻结
*
* @return
*/
@Override
public boolean isAccountNonLocked() {
// return false;
return getUserStatusFlag();
}

/**
* 账户是否锁定
*
* @return
*/
@Override
public boolean isCredentialsNonExpired() {
// return false;
return getUserStatusFlag();
}

/**
* 账户是否删除
*
* @return
*/
@Override
public boolean isEnabled() {
// return false;
return getUserStatusFlag();
}

/**
* 用户是否可用
*
* @return
*/
private boolean getUserStatusFlag() {

if (null != this.userStatus && 1 == this.userStatus) {

return true;

} else {

return false;
}

}

4.UserServiceImpl implements UserDetailsService:

// 只显示implements UserDetailsService后Override方法
// return 测试数据 注意加密

@Autowired
private PasswordEncoder passwordEncoder;

@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {

SystemUserPojo systemUserPojo=new SystemUserPojo();
systemUserPojo.setUserName(username);
systemUserPojo.setPassword(passwordEncoder.encode("123456"));
systemUserPojo.setUserStatus(1);

return systemUserPojo;
}

5.启动访问接口,输入用户名密码

问题排查:

暂无

发布了81 篇原创文章 · 获赞 12 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/u012382791/article/details/105262624
今日推荐