写在前面
通过前面几个章节我们有了一个具有登录雏形的系统,本章我们继续丰富系统功能,给系统整合上Shiro框架,用于系统登录验证和权限控制。经过对Shiro的摸索,由于我们是JFinal工程,所以我直接使用了JFinalShiroPlugin插件。
- 参考资料地址:
- http://git.oschina.net/myaniu/jfinalshiroplugin
- http://git.oschina.net/yinjun622/JFinal-Shiro-JDBC-Demo
本章知识点
Shiro框架
JFinalShiroPlugin插件
编写pom.xml文件,给工程添加需要的jar包文件。首先是Shiro使用的包。
配置web.xm文件。在JFinal的基础上加上shiro的监听和过滤。
配置shiro.ini文件,网上可参考的很多。
在主配置文件中,添加相关参数。
- 在configConstant中添加异常跳转的页面。
在configPlugin中添加插件
这里注意下句代码中的_routes,是首先声明了一个成员变量。
然后在路由设置中进行了赋值。
在configInterceptor中添加shiro的拦截器
在shiro.ini文件中配置一个Realm。如上显示,当然也可继承AuthorizingRealm自定义一个Realm。
- 在configConstant中添加异常跳转的页面。
至此整合工作大致完成,现在我们来改造下登录方法。
从页面获取到用户名和密码后,我们利用shiro提供的方法创建令牌并登录,如果登录成功则通过MainController类里面index方法跳转到相应页面,如果失败则通过IndexController类里面的index方法调整到相应页面。并捕获相关异常信息。数据库准备。我们在数据库添加了一个用户名为zq,密码为6个1的用户。
运行工程。在登录页面我们输入zqq,密码随便。会捕捉到账号不存在的异常。
我们输入正确的用户名和密码,则登录成功。
同时,我们不登录直接访问项目路径的,此时shiro拦截器也做了相应处理。
至此,我们简单的运用了shiro的功能,复杂的我们后面再继续。本次记录结束。
PS:
这里另外记一点,JFinal工程需要在configHandler中设置上下文路径。这个前面漏掉了,导致跳转的时候,页面样式有丢失。