Jfinal配合Shiro进行权限控制

web项目总免不了用户的管理与注册,需求稍微再多一点儿,就涉及用户的角色及权限管理了,下面根据自己项目的实际经验,介绍如何在Jfinal项目中使用Shiro来进行简单的登陆及权限管理。

主角简介

  1. Jfinal 位居开源中国年度热门开源项目前列,简单好用快速的java web开发框架,用过就知道。
  2. Shiro Apache基金会顶级项目,所以你懂得。java安全框架里的主流选择,号称相当简单,但是我至今其实对一些概念还稀里糊涂,所以本文也只记录使用,不做原理概念分析,入门参见教程

使用

1 方案选择

根据项目需求设计角色及权限管理方案,我用到的几乎是最简单的了,如下图所示:
db_design

2 引入shiro

  • 添加shiro-core-1.2.4.jarshiro-web-1.2.4.jar至项目WEB-INF/lib目录下,同时确保shiro的依赖jar:slf4j,commons-beanutils,commons-logging也位于该目录下(maven直接pom添加上面两个shiro的依赖就好)。
  • 添加Jfinal shiro插件jfinal-shiro-2.0.0.jar到该目录下。

3 DefaultConfig.java

  • DefaultConfig.java中的public void configConstant(Constants me)方法中加入401与403错误代码处理(可选)。
//RequiresGuest,RequiresAuthentication,RequiresUser验证异常,返回HTTP401状态码
me.setErrorView(401, "/login.html");
//RequiresRoles,RequiresPermissions授权异常,返回HTTP403状态码
me.setErrorView(403, "/login.html");
  • class DefaultConfig加一个成员变量
public class DefaultConfig extends JFinalConfig {
   
    /**
     * 供Shiro插件使用。
     */
    Routes routes;
  • public void configRoute(Routes me)方法中加入:
public void configRoute(Routes me) {
    this.routes = me;
    me.add(...)
...
  • public void configPlugin(Plugins me)方法最后加入:
public void configPlugin(Plugins me) {
    ...//other plugins
    ShiroPlugin shiroPlugin = new ShiroPlugin(this.routes);
    shiroPlugin.setLoginUrl("/login.do");//登陆url:未验证成功跳转
    s
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值