shiro入门学习--授权(Authorization)|筑基初期 (3)

具备某一具体资源权限才能访问

/** * @author 赖柄沣 bingfengdev@aliyun.com * @version 1.0 * @date 2020/10/5 17:23 */ public class AuthzTest2 { private CurrentSystemAuthenticator authenticator; @Before public void init() { this.authenticator = new CurrentSystemAuthenticator(); //对于授权,只有主体通过认证后才能进行,所以需要先登录系统 this.authenticator.authenticate("xiangbei","123"); } @Test public void testIsPermission() { Subject subject = SecurityUtils.getSubject(); if (subject.isPermitted("user:create")){ System.out.println(subject.getPrincipal() + " 具有 用户创建权限"); } } }

输出

xiangbei 认证通过! xiangbei 具有 用户创建权限 isPermitted(String... permission)或者isPermitted(List permissions)

适用于要求具备某些权限的其中一部分的情况

/** * @author 赖柄沣 bingfengdev@aliyun.com * @version 1.0 * @date 2020/10/5 17:23 */ public class AuthzTest2 { private CurrentSystemAuthenticator authenticator; @Before public void init() { this.authenticator = new CurrentSystemAuthenticator(); //对于授权,只有主体通过认证后才能进行,所以需要先登录系统 this.authenticator.authenticate("xiangbei","123"); } @Test public void testIsPermitted(){ Subject subject = SecurityUtils.getSubject(); boolean[] permitted = subject.isPermitted("user:create", "user:find"); for (boolean b : permitted) { if (b) { System.out.println(subject.getPrincipal() +" 具有访问权限"); break; } } } } isPermittedAll

这个适用于需要主体具备所列出的所有资源才能访问的情况

/** * @author 赖柄沣 bingfengdev@aliyun.com * @version 1.0 * @date 2020/10/5 17:23 */ public class AuthzTest2 { private CurrentSystemAuthenticator authenticator; @Before public void init() { this.authenticator = new CurrentSystemAuthenticator(); //对于授权,只有主体通过认证后才能进行,所以需要先登录系统 this.authenticator.authenticate("xiangbei","123"); } @Test public void testIsPermittedAll() { Subject subject = SecurityUtils.getSubject(); boolean b = subject.isPermittedAll("product:*"); if (b) { System.out.println(subject.getPrincipal() +" 具备 product 模块的所有权限"); }else { System.out.println(subject.getPrincipal() +" 没有 product 模块的访问权限"); } }

输出

xiangbei 认证通过! xiangbei 没有 product 模块的访问权限 写在后面

在这篇文章当中,我们主要学习了shrio的访问控制,并通过一个简单的例子给大家做了演示。在下一篇Shiro系列的文章当中,作者将介绍SpringBoot整合Shiro的相关内容。

如果您觉得这篇文章能给您带来帮助,那么可以点赞鼓励一下。如有错误之处,还请不吝赐教。在此,谢过各位乡亲父老!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyzffp.html