1,Shiro提供了对Web环境的支持,其通过一个 ShiroFilter 入口来拦截需要安全控制的URL,然后进行相应的控制。
     ①配置的 ShiroFilter 实现类为:org.springframework.web.filter.DelegatingFilterProxy 。
     ②这是一个 Servlet Filter 的代理对象,它在IOC容器中去找实现了Filter接口的bean。
     ③它可以通过一个初始化参数"targetBeanName"来找到bean,也可以通过<filter-name>找到bean。
 
2,ShiroFilter 类似于SpringMvc中的前端控制器,是安全控制的入口点,其负责读取配置文件(如ini配置文件),然后判断该URL是否需要登陆/授权等工作。
     ①在SpringIOC容器中配置org.apache.shiro.spring.web.ShiroFilterFactoryBean的时候,该bean的名称必须要和 ShiroFilter 的<filter-name>一致。否则在服务加载的时候会报错。因为Shiro会在IOC容器中查找和<filter-name>对应的filter bean。
     
     下面是一个比较基本的Shiro配置内容:
     

  

     
 
3,受保护的URL如何进行配置
     ①[urls]部分的配置,其格式为:url=拦截器[参数],拦截器[参数]。
     ②如果当前请求的url匹配[urls]部分的某个url模式,将会执行器配置的拦截器。
     ③anon(anonymous)拦截器表示可以匿名访问。
     ④authc(authencation)拦截器标识需要身份认证通过后才能访问。
     ⑤logout(logout)拦截器表示登出/退出登录,它会清空shiro缓存信息
     ⑥url模式使用 Ant 风格模式
          [1]?匹配一个字符;
          [2]*匹配零个或多个字符;
          [3]**匹配路径中的零个或多个路径;
 
 
4,认证/授权基本步骤
     ①获取当前的 Subject,调用SecurityUtils.getSubject();
     ②判断当前用户是否已经认证,调用 Subject 的 isAuthenticated();
     ③或没有被认证,则把用户名和密码封装为 UserNamePassworkToken 对象
          [1]客户端提交的表单数据。
          [2]提交数据到SpringMVC的 handler 上。
          [3]获取用户名和密码。
     ④执行登录,调用 Subject 的 login(AuthencationToken);
     ⑤自定义Realm 方法,从数据库中获用户安全数据,返回给Shiro
          [1]实际上需要继承 org.apache.shiro.realm.AuthencatingRealm 类(仅仅实现认证,org.apache.shiro.realm.AuthorizingRealm 可以用来认证和授权)。
          [2]实现 doGetAuthenticationInfo(AuthenticationToken) 方法。
     ⑥最后由Shiro完成密码的比对。

Shiro在Web环境下集成Spring的大致工作流程的更多相关文章

  1. 在spring环境下集成ActiveMQ

    1.参考文献 Spring集成ActiveMQ配置 Spring JMS异步发收消息 ActiveMQ 2.环境 在前面的一篇ActiveMQ入门实例中我们实现了消息的异步传送,这篇博文将如何在spr ...

  2. 06_在web项目中集成Spring

    在web项目中集成Spring 一.使用Servlet进行集成测试 1.直接在Servlet 加载Spring 配置文件 ApplicationContext applicationContext = ...

  3. web环境中的spring MVC

    1. web.xml文件的简单详解 在web环境中, spring MVC是建立在IOC容器的基础上,要了解spring mvc,首先要了解Spring IOC容器是如何在web环境中被载入并起作用的 ...

  4. 【Java面试】介绍下Spring IoC的工作流程

    Hi,我是Mic 一个工作了4年的粉丝,在面试的时候遇到一个这样的问题. "介绍一下Spring IOC的工作流程" 他说回答得不是很好,希望我能帮他梳理一下. 关于这个问题,我们 ...

  5. Spring Bean的生命周期、Spring MVC的工作流程、IOC,AOP

    1.Spring Bean的生命周期? (1)构造方法实例化bean. (2)构造方法设置对象属性. (3)是否实现aware接口,三种接口(BeanNameAware,BeanFactoryAwar ...

  6. ThreadLocal 在web环境下使用的边界问题

    ThreadLocal 相关分析,请查看http://wangxinchun.iteye.com/blog/1884228 另外一个必须要提的点是: ThreadLocal在线程池环境下的使用. 比如 ...

  7. Spring-IOC 在非 web 环境下优雅关闭容器

    当我们设计一个程序时,依赖了Spring容器,然而并不需要spring的web环境时(Spring web环境已经提供了优雅关闭),即程序启动只需要启动Spring ApplicationContex ...

  8. spring-cloud-kubernetes服务发现之在k8s环境下开发spring cloud应用

    通常情况下,我们的线上的服务在迁移到k8s环境下的时候,都是采用平滑迁移的方案.服务治理与注册中心等都是采用原先的组件.比如spring cloud应用,在k8s环境下还是用原来的一套注册中心(如eu ...

  9. Xcode7.1环境下上架iOS App到AppStore 流程① (Part 一)

    前言部分 之前App要上架遇到些问题到网上搜上架教程发现都是一些老的版本的教程 ,目前iTunesConnect 都已经迭代好几个版本了和之前的 界面风格还是有很大的差别的,后面自己折腾了好久才终于把 ...

随机推荐

  1. painter半透明的 底层窗口全透明背景

  2. UI设计师必收!同行总结可即刻上手的iOS规范参考

    分享 <关于我> 分享  [中文纪录片]互联网时代                 http://pan.baidu.com/s/1qWkJfcS 分享 <HTML开发MacOSAp ...

  3. Excel求值表达式——太好用了

    这个需要通过宏表函数EVALUATE来实现,首先需要自定义名称.如果数据在A列,那么在B列自定义名称,按Ctrl+F3键,在“定义名称框”中选择“新建”,然后输入名称为“结果”,数据来源输入=EVAL ...

  4. 平衡二叉树 JAVA实现 亲测可用

    平衡二叉树的JAVA实现 亲测可用 包括LL LR RL RR四种情况的旋转算法 以及添加删除树结点之后对平衡二叉树的维护算法 都已经实现并测试过 没有问题. 代码地址可以直接上我的GIT clone ...

  5. SQL Server 2012完全备份、差异备份、事务日志备份和还原操作;

    SQL Server 2012完全备份.差异备份.事务日志备份和还原操作: 1.首先,建立一个测试数据库,TestA:添加一张表,录入二条数据:备份操作这里我就不详细截图和讲解了.相信大家都会备份,我 ...

  6. 网络学习笔记(三):HTTP缓存

      HTTP缓存是一种保存资源副本并在下次请求时直接使用该副本的技术,合理的使用缓存可以有效的提升web性能.   浏览器将js文件.css文件.图片等资源缓存,当下次请求这些资源时,可以不发送网络请 ...

  7. [MFC.Windows程序设计(第2版) 第一章

    1,windows编程模型如下图: 2, windows的消息有成百上千种,以下列举10个: 3,消息处理函数的四个参数:窗口句柄(表示消息属于哪个窗口,32值.该窗口句柄引用一个数据结构,数据结构存 ...

  8. Java连载3-编译与运行阶段详解&JRE,JDK,JVM关系

    ·一. 1.JDK下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html ...

  9. AntD使用timePiacker封装时间范围选择器(React hook版)

    .katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...

  10. 借助URLOS快速安装Discuz论坛

    ### 简介 Discuz!是个可免费下载的PHP网络论坛程序,简称DZ,由戴志康所创立,当前最新版本是Discuz! X3.4.前身为Crossday Bulletin,最初改自XMBForum,尔 ...