53 Star 84 Fork 24

lengleng / JFinalShiroPlugin

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 2.97 KB
一键复制 编辑 原始数据 按行查看 历史
lengleng 提交于 2018-05-14 07:41 . 更新 README.md

本项目年久失修,停止维护

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

例子可以参考:http://git.oschina.net/log4j/LMS

Java
1
https://gitee.com/log4j/jfinalshiroplugin.git
git@gitee.com:log4j/jfinalshiroplugin.git
log4j
jfinalshiroplugin
JFinalShiroPlugin
master

搜索帮助