spring boot 中 shiro 的配置以及配合thymeleaf的使用
一、spring boot 配置 shiro
1.导入依赖
导入 shiro 的依赖
<!-- Shiro -->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>1.7.1</version>
</dependency>
2. 自定义 Realm
自定义 UserRealm 类
public class UserRealm extends AuthorizingRealm {
// 这是为了查询数据库导入的
@Autowired
private UserMapper userMapper;
// 授权
@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
System.out.println("执行了 -》 授权 doGetAuthorizationInfo");
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
// 添加授权
// info.addStringPermission("user:add"); // 手动添加
// 获取当前用户
User currentUser = (User) principalCollection.getPrimaryPrincipal();
// 添加从数据库中获取的权限
info.addStringPermission(currentUser.getPerms());
return info;
}
// 认证
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
System.out.println("执行了 -》 认证 doGetAuthenticationInfo");
// 类型转换
UsernamePasswordToken userToken = (UsernamePasswordToken) authenticationToken;
Map<String, Object> map = new HashMap<>();
map.put("username", userToken.getUsername());
// 连接数据库查询用户
// 用户名是不重复的,所以查出的用户只有一个
List<User><