Shiro授权
角色授权
SecurityManager调用Subject授权,SercurityManager调用Authorizer的Realm获取用户权限数据
check角色
shiro授权
222222222222222222222
授权过程示意图
Shiro 授权
shiro授权过程(角色有哪些权限)
simpleAccountRealm.addAccount("wakeng","123456","admin","user");
shiro授权:创建securityManager -> 主体授权 -> securityManager授权 -> authorizer授权 -> Realm 获取角色权限数据
添加角色,授权
shiro授权流程
import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.SimpleAccount; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.mgt.DefaultSecurityManager; import org.apache.shiro.realm.SimpleAccountRealm; import org.apache.shiro.subject.Subject; import org.junit.Before; import org.junit.Test; /** * AuthenticationTest * * @author Wakeng */ public class AuthenticationTest { SimpleAccountRealm simpleAccountRealm = new SimpleAccountRealm(); @Before public void addUser(){ simpleAccountRealm.addAccount("wakeng","123456","admin","user"); } @Test public void testAuthentication(){ //1.创建SecurityManager DefaultSecurityManager defaultSecurityManager = new DefaultSecurityManager(); defaultSecurityManager.setRealm(simpleAccountRealm); //2.主题提交认证请求 SecurityUtils.setSecurityManager(defaultSecurityManager); Subject subject = SecurityUtils.getSubject(); UsernamePasswordToken token = new UsernamePasswordToken("wakeng","123456"); subject.login(token); System.out.println("login isAuthenticated : "+subject.isAuthenticated()); //判断是否有admin权限 subject.checkRoles("admin","user"); subject.logout(); System.out.println("logout isAuthenticated : "+subject.isAuthenticated()); } }
shiro授权
shiro赋予admin角色
shiro授权代码
shiro授权流程
Shiro 授权
创建SecurityMananger ->主题授权->SecurityManager授权->Authorizer授权->Realm获取角色权限数据
Shiro授权
与之前Shiro认证的步骤一样。
只不过在Realm 的SimpleAccountRealm中可以添加addUser的时候,可以添加入多个角色(即可变数组的形式)
同样进行授权验证即检验该登录用户是否具备该角色的时候,使用:
subject.checkRoles(可变参数)的形式检验。
必须在登录的情况下,其他步骤与认证相同。
Shiro授权过程
subject.checkRole()检查用户是否具备角色
subject.login()传入token 登陆认证
simpleAccountRelm.addAccount() 授权器 授权
sa 通过 Realm获取角色数据和权限数据
shiro授权
Shiro 授权:
创建SecurityManager -> 主体授权 -> SecurityManager授权 -> Authorizer授权 -> Realm获取角色权限数据
Shiro授权流程
shiro授权流程