nutz基于shiro实现身份认证和权限认证

最近新入职了一家公司,不同于其他公司,这里用的是Nutz作为其架构,而最近又要基于它利用shiro去做一个权限验证的操作。这里,不过多的介绍Nutz了,主要以shiro为主,话不多说开始正题。

先来说说接下来要基于shiro去做的是什么东西好了。我们访问一个地址,进入用户登录界面,然后输入用户名密码进入该用户能看到的页面,就是这么一个效果。好,那么要实现刚才说的那个效果主要用到的是什么呢/p>

1.用户认证:用户身份识别,常被称为用户“登录”;

2.权限设置:访问控制;

如果是第一次接触shiro的同学的话建议去了解下shiro是什么,内外部架构,这里推荐几个网址,当然也可以去下载shiro相关入门文档,我也会在最后附上从网上下载的一个中文文档(不需要积分,要什么自行车)

shiro简介
shiro入门

当然了,可能有的童鞋想要速成想直接看代码,用实践去学习。接下来我就放出我写的代码,不过在这之前还是先简单介绍一下用户验证和权限设置这里。首先是用户认证,其重点在于认证,如果你已经浏览过上面两个连接的话相信你已经知道shiro认证的条件是什么,比如username(用户名),password(密码),salt(盐),token之类。一旦我们把用户(subject)交于shiro,那么我们提供这些认证条件之后,那么满足通过之后就是有认证的用户。举个我个人的理解的吧,比如我们去办理很多业务,我们提供了一些能确定我们身份的信息(比如手机号,身份证号之类的),就可以顺畅的办理一样;之后再说说权限设置,这里的话我先结合我们的应用来说,在很多系统里每个用户不可能全都享有全部菜单全部按钮的权限(比如一个只有浏览权限的人,有了去操作业务数据的权限,这就很不合理了)。而shiro就可以让我去控制每个用户(subject),给其设置权限和角色,让其访问属于他这种权限的页面享有他这种权限应有的操作。

好了,进入正片环节,先放张jar包的图,jdk 1.8,tomcat 8 ,开发IDE 是netbeans 最新版

nutz基于shiro实现身份认证和权限认证

我省略过nutz的相关配置,直接放出我自定义的Realm的代码,以及相应控制类(可能在别处叫controller不过都一个意思)的实现方法

入口方法类:UserModule.java

自定义Realm实现类:SimpleAuthorizingRealm.java

运行项目,在地址后面输入/user/login,进入如下页面:

nutz基于shiro实现身份认证和权限认证

调用方法:

nutz基于shiro实现身份认证和权限认证

我们可以看到那个认证方法的输出执行,那么为什么会返回这个页面吗为我设置了页面跳转,在认证成功之后,会给用户设置角色和权限,这时候只要在跳转的jsp页面设置shiro的jsp标签进行配置即可(记得引入shiro的标签库),页面如下:

有的童鞋说我不知道shiro的jsp标签是什么,怎么用慌,请参看下面的链接,相信定有收益。
shiro标签配置JSP元素权限

认证成功跳转页面为shiroIndex.jsp:

最终的效果就是,用户admin登录系统,输入用户名和密码被认证之后,根据其角色和权限显示不同的内容,我在自定义的Realm实现类里还模拟了一个guest的用户,大家可以自行测试下。

结语—

自行发挥:我在入口方法设置token的时候只是用到了一个shiro的简单的实现类,还有很多别的实现类,大家可以根据自己的需要去查看API实现,我在这里就抛砖引玉了;还有看过shiro标签之后,回过头来再结合用户权限我们不难发现,shiro不仅可以根据角色或者权限做控制,还可以更细粒度的去实现根据什么角色什么权限才能看到什么的操作,是不是很有趣/p>

展翅翱翔:相信仔细看过shiro简介的朋友一定知道shiro不止能实现操作,没错,shiro还可以做加密,单点登录,回话管理等等,虽说是轻量级的但是麻雀虽小五脏俱全嘛,大家不妨去看看这些功能,说不定下一个安全架构师就是你。

最后附上我的数据库字段截图,以及代码和shiro的一个pdf文档,希望对大家有帮助。(请去我上传的资源当中下载,都是不要积分的,都是一个源码一个pdf文档,希望能帮到大家)

nutz基于shiro实现身份认证和权限认证 2022Java互联网架构师P7视频资料 nutz基于shiro实现身份认证和权限认证 微信名片 nutz基于shiro实现身份认证和权限认证

来源:普通网友

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年7月21日
下一篇 2022年7月21日

相关推荐