[Spring Security] 前后端分离项目中的后端代码简单示例
一.前言
- 环境:springboot 2.3.0、springsecurity 5.3.2
- 这篇随笔可能对其他人很不友好,因为只贴了相关的代码,所以不建议大家参考,我只是写给自己看的,但是跟大家分享一下;
- 如果代码有问题的话请告诉我,但是其他的如代码不规范什么的就不必了,我知道我很渣,存在很多问题;
- 管理员这个实体类只有 id、username 和 password 这三个属性
- 该代码没有权限控制,没有会话管理等其他的功能,只有登录验证功能,所以较为简单
- 下面每个各种处理器都必须在第6点中的 MySecurityConfiguration 中注册,否则无法生效
- 代码已经验证过,没问题
二.代码
导包(略……)
1.自定义登录逻辑(访问数据库)
/**
* @author Chase Meng
* @description: 自定义登录逻辑(访问数据库)
* @created on 2020/9/7
*/
@Configuration
public class CustomizeUserDetailsService implements UserDetailsService {
@Autowired
private LoginOperate loginOperate;
@Autowired
private PasswordEncoder passwordEncoder;
// @Autowired
// private Encryption encryption;
// @Bean
// public PasswordEncoder passwordEncoder() {
// return new BCryptPasswordEncoder();
// }
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
Admin admin =loginOperate.findUserByUsername(username);
if(username==null||username.equals("")){
throw new RuntimeException("用户名不能为空!");
}
if(admin==null){
throw new RuntimeException("用户名不存在!");
}
List<GrantedAuthority> authorities=new ArrayList<GrantedAuthority>();
authorities.add(new SimpleGrantedAuthority("ROLE_"+"normal")); //由于没有设置授权,所以随便给一个身份normal
User userDetails = new User(admin.getUsername(), passwordEncoder.encode(admin.getPassword()), authorities);
return userDetails;
}
}

![[Spring Security] 前后端分离项目中的后端代码简单示例[编程语言教程]](https://www.zixueka.com/wp-content/uploads/2024/01/1706711991-38c33e008695139.jpg)
