Spring Security 2.0.5 学习笔记(一) - URL级别权限控制
来源:互联网 发布:网络印刷平台的趋势 编辑:程序博客网 时间:2024/06/05 19:01
一. Spring Security 大概的工作流程以及个人修改
1.web.xml配置需要被Spring Security处理的URL
这里拦截的是/*,也就是该系统的全部URL请求都拦截。
2.Spring容器初始化
配置文件applicationContext.xml, applicationContext-security.xml, applicationContext-systemManagement.xml,.....................
3.Spring Security进入过滤器链,也就是经过多个过滤器处理,不同的过滤器负责不同的工作
不同于Spring acegi, 不需要在applicationContext-security.xml手工配置。
4.对Spring Security进行功能扩展,加入自定义的过滤器,该过滤器是配置在上述过滤器的最后面,经过上面的过滤器处理,最后进入该过滤器处理
配置文件同样在applicationContext-security.xml
<!--\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\--><!--负责对资源进行认证的Interceptor(实际就是fiter),检查Authentication所授予的权限是否拥有可以访问被访问的url资源。--><beans:bean id="urlResourceSecurityInterceptor"class="org.springframework.security.intercept.web.FilterSecurityInterceptor"><beans:property name="authenticationManager" ref="authenticationManager" /><beans:property name="accessDecisionManager" ref="accessDecisionManager" /><beans:property name="objectDefinitionSource"ref="urlFilterInvocationDefinitionSource" /><beans:property name="observeOncePerRequest" value="false" /><!-- <custom-filter after="LAST" /> --><custom-filter after="FILTER_SECURITY_INTERCEPTOR" /></beans:bean><!--实际上,我们虽然无法替换FilterSecurityInterceptor的默认实现,不过我们可以再实现一个类似的过滤器,并将我们自己的过滤器作为一个customer-filter,加到默认的过滤器链的最后,从而完成整个过滤检查。--><!-- 获取访问被访问的资源所需要的权限(authority),以ConfigAttributeDefinition形式返回 --><beans:bean id="urlFilterInvocationDefinitionSource"class="com.newzhongmei.pmi.aop.aspect.security.DefinitionSource.UrlFilterInvocationDefinitionSource" />
5.在web.xml配置一个自定义的监听器,用于Spring Security,详细请查看该java实现源码
<span style="white-space:pre"></span><listener><span style="white-space:pre"></span><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class><span style="white-space:pre"></span></listener>
<span style="white-space:pre"></span><!--ServletContextLoaderListener是额外添加的监听器,用于Spring Security,详细请查看该实现源码--><listener><listener-class>com.newzhongmei.pmi.aop.aspect.security.listener.ServletContextLoaderListener</listener-class></listener>
ServletContextLoaderListener的主要工作是从数据库中查找所有的URL资源以及和它们相对应的ROLE角色,最后组装到一个Map<String, String>,存放到session里面。
Map<String, String> urlAuthorities = userService.loadUrlAuthorities();servletContext.setAttribute("urlAuthorities", urlAuthorities);
0 0
- Spring Security 2.0.5 学习笔记(一) - URL级别权限控制
- Spring Security 2.0.5 学习笔记(二) - Service Method级别权限控制
- Spring Security调研记录【一】--实现基本认证与Url权限控制
- Spring Security 权限控制
- spring security权限控制
- spring security 菜单级别控制
- Spring security学习笔记一
- 关于spring security权限控制
- spring security学习笔记(一)
- Spring Security(一)概要---学习笔记
- Spring Security学习笔记入门(一)
- Spring Security 2.0学习笔记
- 实现基于url级别的权限控制
- Spring Security调研记录【二】--实现异步Json请求的基本认证与Url权限控制
- Spring Security通过URL模式匹配的声明式权限控制
- Spring Security学习一
- spring security学习笔记
- Spring Security学习笔记
- 文本框中默认显示出用户名,当输入名字的时候会覆盖用户名
- web-inf存放jsp的注意事项
- android Navigator的高度计算和判断是否显示
- 部分计算机视觉数据集汇总
- 单调栈相关
- Spring Security 2.0.5 学习笔记(一) - URL级别权限控制
- Android中Preference的使用以及监听事件分析
- UCOSii(四)——任务的通信与同步
- Netty的分隔符和定长解码器应用
- 《大话设计模式》--考研求职两不误--开放-封闭原则<The Open-Closeed Principle>(4)
- crontab(定时任务操作)
- 整理php操作memcache缓存基础方法
- 全球最顶级交易员回忆录
- string中c_str()、data()、copy(p,n)函数的用法