Apache Shrio

一 Apache Shrio 是干什么的?

图片.png

Apache Shiro 可以不依赖任何技术使用, 通常在企业中和Spring 结合使用

二 shrio的执行流程

图片.png

三 shrio 在maven项目中如何使用
首先我们说shrio分为一下两块:
Authentication ,认证 ,用户控制用户登录
Authorization ,授权, 用户进行权限管理
现在我们将spring与shrio进行整合
1.创建我们的shrio模块

图片.png

2.父模块配置

图片.png

3.导入我们的依赖

图片.png

4.web层导入依赖

图片.png

5.web.xml中进行配置shiro的过滤器

图片.png

6.创建shrio的配置application-shrio.xml文件

<bean id="shiroSecurityFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">

<property name="securityManager" ref="securityManager" />

<property name="loginUrl" value="/login.jsp" />

<property name="successUrl" value="/index.jsp" />

<property name="unauthorizedUrl" value="/unauthorized.jsp" />


<property name="filterChainDefinitions">
<value>
/css/** = anon
/demo/** = anon
/images/** = anon
/js/** = anon
/json/** = anon
/login.jsp** = anon
/index.jsp** = authc
/validatecode.jsp** = anon
/user/userAction_login** = anon
/user/userAction_validCheckCode** = anon
/** = authc // 除了上述配置 其他资源必须需要身份认证 (登陆)
</value>
</property>
</bean>

<!-- 安全管理器 -->
<bean id="securityManager" 
    class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
    <!-- 在安全管理器,应该注入 Realm 连接安全数据  -->
</bean>

7.用户身份认证编码
第一步:修改UserAction中的login方法:

图片.png

第二部:需要为SecurityManager 提供 Realm 作用: 数据源桥梁! 根据令牌对象数据(请求用户数据) ---> Realm 获取到令牌(账号和密码)!--->调用数据库..真实用户名和密码,自定义Realm 继承 AuthorizingRealm (提供 认证、授权功能 )将我们的Realm注入给安全管理器对象

图片.png

第三步:
BOSRealm 实现认证方法 BOSRealm extends AuthorizingRealm 重写doGetAuthetication方法 完成用户身份识别认证!

图片.png

注意:
因为shiro的认证失败是抛出异常,因此,我们需要try {}catch(){}一下
8.授权:,代码如下
@Autowired
private FacadService facadService;
@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection collection) {
//如何进行授权,通过AuthorizationInfo进行授权

     SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
    //1.获取当前用户
    Subject subject = SecurityUtils.getSubject();
     User user = (User) subject.getPrincipal();
    //如果是超级管理员
     if("123456@163.com".equalsIgnoreCase(user.getEmail())){
        List<Role> roles =  facadService.getRoleService().findAll();
        for (Role role : roles) {
            info.addRole(role.getCode());
        }
        List<Function> functions = facadService.getFunctionService().findAll();
        for (Function function : functions) {
            info.addStringPermission(function.getCode());
        }
     }else{
         if(user!=null) {
             List<Role> list =facadService.getRoleService().findRolesByUserId(user.getId());
            for (Role role : list) {
                String code = role.getCode();
                info.addRole(code);
                Set<Function> functions = role.getFunctions();
                for (Function function : functions) {
                    info.addStringPermission(function.getCode());
                }
            }
         }      
        
    }
     
    return info;
}

在application-shrio.xml中
配置权限过滤如下列:
/page_base_staff** = roles["common"]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • 一、架构 要学习如何使用Shiro必须先从它的架构谈起,作为一款安全框架Shiro的设计相当精妙。Shiro的应用...
    ITsupuerlady阅读 3,516评论 4 32
  • Apache Shiro Apache Shiro 是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权...
    罗志贇阅读 3,214评论 1 49
  • 一、shiro简介 Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功...
    海天一树X阅读 1,453评论 0 9
  • 目录繁华落尽,乱世成殇 上一章繁华落尽,乱世成殇(11) “我说我以前吃过,你信吗?”玄墨看着她。 白璎思考了一下...
    煦子阅读 559评论 0 7
  • 离思 作者:元稹 曾经沧海难为水,除却巫山不是云。 取次花丛懒回顾,半缘修道半缘君。 小禾个见: 这是一首著名的悼...
    蓦山磎阅读 357评论 0 2