shiro的一次认证多次授权
springboot整合shiro(使用@Bean注解的形式配置javabean)
1.先在pom文件中引入shiro的jar包;
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-all</artifactId>
<version>1.3.2</version>
</dependency>
2.继承extends AuthorizingRealm 实现自己的realm中有两个重要得方法
备注:doGetAuthenticationInfo方法一般只会在登录的时候 UsernamePasswordToken token = new UsernamePasswordToken(userName, userPwd);
token.setRememberMe(true);
subject.login(token);
交给subject的login方法交给SecurityManager的login方法(这个方法中需要获得 AuthenticationInfo info;的验证信息,最终会realm中的getAuthenticationInfo方法,我们自定义的realm间接实现了这个方法,实现了自己的业务逻辑我们可以从数据库获取用户的身份信息进行验证)
@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection token) {
System.out.println("使用了自定义的realm,用户授权...");
// 获取用户名
// String userName = (String) principals.getPrimaryPrincipal();
// 依据用户名在数据库中查找权限信息
// 角色
List<String> roles = new ArrayList<>();
roles.add("admin");
roles.add("user");
// 权限
List<String> permissions = new Arr