在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:JFinalShiroPlugin开源软件地址:https://gitee.com/log4j/jfinalshiroplugin开源软件介绍:本项目年久失修,停止维护JFinalShiroPlugin是针对@玛雅牛 JFinalShiroPlugin 在 **jfinal 3.0+ **版本 做的一个扩展,支持shiro 标签。 3.3版本请使用 https://gitee.com/log4j/jfinalshiroplugin/tree/1.3/ 使用方法1. pom加入<dependency> <groupId>com.github.jieblog</groupId> <artifactId>jfinal-shiro</artifactId> <version>1.0</version></dependency> 2. 配置jfinal config如果使用jf template 的话,构造ShiroPlugin(engine),注意不再是原来 Routes对象啦。 public class LmsCoreConfig extends JFinalConfig { private Engine engine; /** * 配置模板引擎 * * @param me Engine */ public void configEngine(Engine me) { this.engine = me; } /** * 配置插件 * * @param me Plugins */ public void configPlugin(Plugins me) { ShiroPlugin shiroPlugin = new ShiroPlugin(engine); shiroPlugin.setLoginUrl("/login"); shiroPlugin.setUnauthorizedUrl("/unauthorized"); me.add(shiroPlugin); } /** * 配置拦截器 * * @param me Interceptors */ public void configInterceptor(Interceptors me) { me.add(new ShiroInterceptor()); }} 3.页面使用获取Subject Principal 信息 #principal()用户没有身份验证时显示相应信息,即游客访问信息。 #guest() body #end用户已经身份验证/记住我登录后显示相应的信息。 #shiroUser() body #end用户已经身份验证通过,即Subject.login登录成功,不是记住我登录的 #authenticated() body #end 用户已经身份验证通过,即没有调用Subject.login进行登录,包括记住我自动登录的也属于未进行身份验证。 #noAuthenticated() body #end 验证当前Subject是否有该权限 #hasPermission(permissionName) body #end 验证当前用户是否属于以下角色#hasRole(roleName) body#end 验证当前用户是否属于以下全部角色 #hasAllRoles(roleName1,roleName2) body #end 验证当前用户是否属于以下任意一个角色 #hasAnyRoles(roleName1,roleName2) body #end 验证当前Subject是否有下列全部权限 #hasAllPermission(permissionName1,permissionName2) body #end 验证当前Subject是否没有该权限 #lacksPermission(permissionName) body #end验证当前Subject是否没有角色 #lacksRole(roleName) body #end 4.特殊情况处理如果 共享函数模板文件中有使用 shiro标签时,要在afterJFinalStart 后加入,而不是在configEngine中 /** * 启动后回调 */ public void afterJFinalStart() { engine.addSharedFunction("xxxx.html"); } PS |
请发表评论