千里之行系列(5)一 Web工程整合Shiro框架

来源:互联网 发布:大学生的素质知乎 编辑:程序博客网 时间:2024/05/29 21:31

写在前面

通过前面几个章节我们有了一个具有登录雏形的系统,本章我们继续丰富系统功能,给系统整合上Shiro框架,用于系统登录验证和权限控制。经过对Shiro的摸索,由于我们是JFinal工程,所以我直接使用了JFinalShiroPlugin插件。

  • 参考资料地址:
  • http://git.oschina.net/myaniu/jfinalshiroplugin
  • http://git.oschina.net/yinjun622/JFinal-Shiro-JDBC-Demo

本章知识点

  • Shiro框架

  • JFinalShiroPlugin插件


  1. 编写pom.xml文件,给工程添加需要的jar包文件。首先是Shiro使用的包。
    这里写图片描述

  2. 配置web.xm文件。在JFinal的基础上加上shiro的监听和过滤。
    这里写图片描述

  3. 配置shiro.ini文件,网上可参考的很多。
    这里写图片描述

  4. 在主配置文件中,添加相关参数。

    • 在configConstant中添加异常跳转的页面。
      这里写图片描述
    • 在configPlugin中添加插件
      这里写图片描述
      这里注意下句代码中的_routes,是首先声明了一个成员变量。
      这里写图片描述
      然后在路由设置中进行了赋值。
      这里写图片描述

    • 在configInterceptor中添加shiro的拦截器
      这里写图片描述

    • 在shiro.ini文件中配置一个Realm。如上显示,当然也可继承AuthorizingRealm自定义一个Realm。

  5. 至此整合工作大致完成,现在我们来改造下登录方法。
    这里写图片描述
    从页面获取到用户名和密码后,我们利用shiro提供的方法创建令牌并登录,如果登录成功则通过MainController类里面index方法跳转到相应页面,如果失败则通过IndexController类里面的index方法调整到相应页面。并捕获相关异常信息。

  6. 数据库准备。我们在数据库添加了一个用户名为zq,密码为6个1的用户。
    这里写图片描述

  7. 运行工程。在登录页面我们输入zqq,密码随便。会捕捉到账号不存在的异常。
    这里写图片描述
    我们输入正确的用户名和密码,则登录成功。
    这里写图片描述
    同时,我们不登录直接访问项目路径的,此时shiro拦截器也做了相应处理。
    至此,我们简单的运用了shiro的功能,复杂的我们后面再继续。本次记录结束。

PS:

这里另外记一点,JFinal工程需要在configHandler中设置上下文路径。这个前面漏掉了,导致跳转的时候,页面样式有丢失。
这里写图片描述

0 0