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.啟動通路接口,輸入使用者名密碼
問題排查:
暫無