JFinal整合Shiro(一)

原文: http://zhangxiao.org/2016/jfinal-shiro-integration1/

Apache Shiro是Java的一个安全框架,也是我第一个使用的Java安全框架。在个人入门级开源项目JFinal-Paladin中,我进行了一些实践,整体感受仍是很是棒的,该考虑到的都感受已经考虑到。对比以前所接触过的php框架里面安全模块,感受只有过之而无不及。我的体验而已,有意见的朋友请喷?。
本文主要来说述下在JFianl中集成Shiro过程当中的经验和想法。php

入门必看

英文好的能够直接看官网教程,英文很差的能够看下开涛的博客《跟我学Shiro》系列html

在看教程以前,最好了解想一些shiro的概念:Apache Shiro Terminologygit

本身入门时踩的坑

一开始的时候,我本身搞了一个JFinal的全局Interceptor ,用来作Shiro 的权限判断。缘由是一开始不了解Shiro,不知道运用Shiro Filter,理所固然地从JFinal的层面进行思考。github

固然,在JFinal Interceptor 中也是能够作一些权限的判断的,不过顺序上面先要通过ShiroFilter,而后才会到JFinalFilter,真正进入JFinalweb

现成方案

能够直接拿来用,能够作参考,我在实践的时候,也参考了很多apache

JFinalShiroPlugin

项目地址:http://git.oschina.net/myaniu...segmentfault

JFinal_Authority

项目地址:http://git.oschina.net/jayqqa...php框架

Dreampie/jfinal-shiro

项目地址:https://github.com/Dreampie/j...安全

现成方案之我的感觉

部分现成方案中使用了Plugin、Interceptor、Annotation的方式来集成Shrio,我的不是很是喜欢,我的感受有2个痛点:框架

一、须要好多代码去实现Plugin、Interceptor、Annotation,虽然别人写好了,可是你仍是得去了解源码,万一有个坑呢:),毕竟不是什么大而成熟且运用普遍的解决方案

二、你项目里有这么多代码,想一想一下

  • 某一天你想知道哪一个Controller或Action里面加了Shiro鉴权,哪些没有加
  • 某一天你想知道各个加了Shrio鉴权的Controller或Action所对应的权限表达式是什么
  • 某一天你想知道加一个权限判断,或去掉一个

你得去找,去改,从新编译,从新部署。无论你疯不疯,反正我感受我会疯的。

个人选择

既然Shiro是专业的那就让它作好该作的。

  1. 在shiro.ini里面,配置自定义Realm+自定义filters+url表达式,来实现自定义的验证方式
  2. 用web来配置:资源、角色、用户、权限

待续...
下一篇中我将会整理具体的实现步骤:《JFianl整合Shiro(二)》

相关文章
相关标签/搜索