JSP整合Shiro实例

JSP整合Shiro实例
Apache Shiro是一个开源的安全机制框架,本例中使用jsp的web项目整合shiro
主要分为以下几大部分:
 (1)shiro的用户的配置,shiro.ini文件
 (2)shiro的用户登录,shiro自动抛出异常(如密码错误,用户名不存在等)
 (3)通过登录用户的权限,判断该用户是否对某一组件具有特定的权限
 (4)使用Shiro jsp taglib
1.首先看一下我的shiro.ini文件,看一下用户名、密码以及配置的权限,其中*为通配符
 
JSP整合Shiro实例
 
2.查看JSP的web.xml文件:主要是声明了两个类的映射,login和logout,方便JSP form表单action提交到到后台java代码
 
JSP整合Shiro实例
 
3.JSP登录界面,username和password,form表单提交后,进入Login类,这个类继承了HttpServlet,重写doPost方法
index.jsp:
 
JSP整合Shiro实例
 
Login.java:获取request的username和password后,调用Check类下的logCheck方法,这个方法是该项目中shiro的核心
Login.java:


JSP整合Shiro实例
 
Check.java:logCheck方法返回一个String,表示根据用户登录的情况,返回接下来的页面,失败:index.jsp,成功:second.jsp


JSP整合Shiro实例
 

4.登录成功后的页面second.jsp
这个页面根据用户的权限“button”,分别用java代码和jsp标签两种方式判断是否当前用户具有名称为“button”的权限,
通过该权限判断是否页面中的button按钮暴露给当前用户


JSP整合Shiro实例
 5.标签库描述文件(TLD)被打包在META-INF/shiro.tld文件中的shiro-web.jar(导入shiro-all.jar就行)
使用时,通过以下代码进行导入:
<%@taglib prefix="shiro" uri="http://shiro.apache.org/tags"%>

6.最后的注销,调用了java类Logout,很简单就是一个退出方法,这里就忽略了。

7.登录时,通过admin和user和member登录后,button这个按钮会根据各自的权限不同确定是否显示在页面中。

8.以上皆为小子初次尝试,如有啥子不好的地方,请各位大神批评指正。。。。。。。。。。