- 浏览: 1419780 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (409)
- Java (48)
- Spring (29)
- struts2 (17)
- hibernate (4)
- 设计模式 (24)
- jbpm (1)
- JavaScript (5)
- 统计报表 (7)
- ExtJS_3.0 (35)
- struts1 (1)
- 分析设计 (3)
- Flex3 (24)
- UML (2)
- 数据库 (18)
- PowerDesigner (2)
- 应用服务器 (3)
- WebService (5)
- ActiveMQ_5.3.2 (6)
- Java通信技术 (11)
- GWT (6)
- OSGi (15)
- android (11)
- liferay6.0.6 (13)
- jquery (13)
- Linux (3)
- java.util.concurrent (16)
- guava (9)
- 开发模式 (1)
- 大数据 (2)
- 互联网金融 (4)
- treegrid-3.0 (7)
- 分布式 (8)
- GO语言 (4)
- maven (1)
- 缓存技术 (6)
- 其他 (2)
- 前端页面 (1)
- heasy (1)
- spring cloud(F版) (21)
- springboot (12)
- springmvc (5)
- mybatis (3)
- dubbo (1)
- 物联网 (0)
最新评论
-
raymond.chen:
谢谢您的分享
使用Ngrok解决通过外网访问内网web应用 -
wangyudong:
速度有点慢,不过在也找到了一个开源的holer,配置一个key ...
使用Ngrok解决通过外网访问内网web应用 -
a1006458222:
...
Axis2的部署和应用 -
偷师来了:
不好意思 这样的博客我觉得就灭有必要分享出来了 命令大家都会看 ...
Consul框架介绍 -
lliiqiang:
怎么直接删除文件夹啊?固定的几个文件可以删除,不固定的呢?需要 ...
Flex AIR —— 文件读写
Acegi是基于Spring的一个开源的安全认证框架,现在的最新版本是Spring Security 2.0。新版本增加了许多新的特性:新特性包括简化的配置,并增加了新的功能,包括OpenID、NTLM、JSR 250注解、AspectJ切入点(pointcut)支持、域ACL增强、RESTful URI授权、组、分级角色、用户管理API、数据库支持的“remember me”,portlet认证、其他语言、Web Flow 2.0支持、Spring IDE可视化及自动完成、通过Spring Web Services 1.5提供的增强WSS支持等等。其中,最明显的就是配置文件的简化。
1.x版本需要配置一个过滤器链以及各个过滤器对应的bean,各个过滤器一般有先后顺序,顺序颠倒了会出现一些意想不到的异常,无疑增加了配置的复杂性。在2.x版本中,框架将过滤器链和各个过滤器的先后顺序作了固化,以降低配置的复杂性、减少配置出错的机率。
下面将详细介绍Spring Security 2.0的配置。
一、在web.xml中的配置
<filter> <filter-name>securityFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> <init-param> <param-name>targetBeanName</param-name> <param-value>springSecurityFilterChain</param-value> </init-param> </filter> <filter-mapping> <filter-name>securityFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 当过滤器的名称不是springSecurityFilterChain时,需要配置targetBeanName参数,参数值为springSecurityFilterChain -->
二、在security.xml中的配置
1、namespace的引用
<b:beans xmlns="http://www.springframework.org/schema/security" xmlns:b="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.1.xsd">
2、http节点的配置
<http auto-config="true" lowercase-comparisons="false" path-type="ant" access-denied-page="/accessDenied.jsp" access-decision-manager-ref="accessDecisionManager"> <intercept-url pattern="/index.jsp*" access="ROLE_ANONYMOUS"/> <intercept-url pattern="/logout.jsp*" access="ROLE_ANONYMOUS"/> <intercept-url pattern="/accessDenied.jsp*" access="ROLE_ANONYMOUS"/> <intercept-url pattern="/**/*.jsp*" access="ADMIN,SYS_MANAGER"/> <intercept-url pattern="/**/*.htm*" access="ADMIN,SYS_MANAGER"/> <intercept-url pattern="/**/*.html*" access="ADMIN,SYS_MANAGER"/> <intercept-url pattern="/**/*.action*" access="ADMIN,SYS_MANAGER"/> <intercept-url pattern="/**/*.ftl*" access="ADMIN,SYS_MANAGER"/> <form-login login-page="/index.jsp" always-use-default-target="true" login-processing-url="/j_security_check" authentication-failure-url="/index.jsp?login_error=1" default-target-url="/main.action"/> <concurrent-session-control max-sessions="1" exception-if-maximum-exceeded="false"/> <logout logout-url="/j_security_logout" logout-success-url="/index.jsp" invalidate-session="true"/> </http>
说明:
lowercase-comparisons:表示URL比较前先转为小写。
path-type:表示使用Apache Ant的匹配模式。
access-denied-page:访问拒绝时转向的页面。
access-decision-manager-ref:指定了自定义的访问策略管理器。当系统角色名的前缀不是默认的ROLE_时,需要自定义访问策略管理器。
login-page:指定登录页面。
login-processing-url:指定了客户在登录页面中按下 Sign In 按钮时要访问的 URL。与登录页面form的action一致。其默认值为:/j_spring_security_check。
authentication-failure-url:指定了身份验证失败时跳转到的页面。
default-target-url:指定了成功进行身份验证和授权后默认呈现给用户的页面。
always-use-default-target:指定了是否在身份验证通过后总是跳转到default-target-url属性指定的URL。
logout-url:指定了用于响应退出系统请求的URL。其默认值为:/j_spring_security_logout。
logout-success-url:退出系统后转向的URL。
invalidate-session:指定在退出系统时是否要销毁Session。
max-sessions:允许用户帐号登录的次数。范例限制用户只能登录一次。
exception-if-maximum-exceeded: 默认为false,此值表示:用户第二次登录时,前一次的登录信息都被清空。
当exception-if-maximum-exceeded="true"时系统会拒绝第二次登录。
3、自定义访问决策管理器的配置
<b:bean id="accessDecisionManager" class="org.springframework.security.vote.AffirmativeBased"> <b:property name="allowIfAllAbstainDecisions" value="false"/><!-- 设定是否允许 “没人反对就通过” 的投票策略 --> <b:property name="decisionVoters"><!-- 投票者 --> <b:list> <b:bean class="org.springframework.security.vote.RoleVoter"> <b:property name="rolePrefix" value=""/><!-- 投票者支持的权限前缀,默认是“ROLE_” --> </b:bean> </b:list> </b:property> </b:bean>
说明:
Acegi提供三种投票通过策略的实现:
1、AffirmativeBased(至少一个投票者同意方可通过)
2、ConsensusBased(多数投票者同意方可通过)
3、UnanimousBased(所有投票者同意方可通过)
4、DAO身份验证提供者的配置
<authentication-provider user-service-ref="userDao"/>
三、登录页面
<form method="post" id="frmLogin" name="frmLogin" action="<s:url value="/j_security_check"/>"> 用户:<input type="text" name="j_username" id="j_username"/> 密码:<input type="password" name="j_password" id="j_password"/> <input type="submit" value="Sign In"/> </form>
说明:
1、form的action值必须与security.xml配置文件中form-login节点的login-processing-url属性值一致。
2、用于输入用户名的input控件name必须为j_username。
3、用于输入密码的input控件name必须为j_password。
评论
041033(at)gmail(dot)com
发表评论
-
自定义Spring命名空间
2019-02-19 20:12 4801、定义schema约束xsd文件 将xsd ... -
Spring表达式语言
2019-02-19 17:17 643Spring表达式语言(Spring Expression ... -
Spring AOP使用整理:常用的Pointcut和PointcutAdvisor
2019-02-17 23:07 2206Spring常用的PointcutAdviso ... -
Spring的拦截器
2019-02-17 16:11 2056Spring的拦截器主要分两种,一个是HandlerInt ... -
Spring的动态代理
2019-02-17 15:23 977AOP是Spring的重要组成 ... -
spring retry框架的使用
2019-02-16 21:17 981spring retry是从spring batch独立出 ... -
Spring BackOff退避算法
2019-02-15 22:21 3731Spring的util包提供了退避算法的实现,BackOff ... -
Spring事件驱动模型概念及使用范例
2016-12-01 16:49 2611一、概念: 二、使用要点: 事件对 ... -
自定义基于Spring的自动扫描器
2016-04-18 18:08 2159主要代码结构如下: //Ant模式通配符的Resourc ... -
资源查找器PathMatchingResourcePatternResolver的使用
2016-04-18 10:12 4280PathMatchingResourcePatternRe ... -
Spring常用的过滤器
2015-10-18 02:48 18301、CharacterEncodingFilter ... -
Spring常用的监听器
2015-10-18 02:38 45371、IntrospectorCleanupListen ... -
Spring+Hibernate环境下CLOB字段值的处理
2011-07-22 15:22 1541软件环境: Spring:2.5.4 ... -
Spring常用的接口和类(三)
2011-04-10 21:35 2813一、CustomEditorConfigurer ... -
AOP概念
2010-06-10 16:14 1464AOP (Aspect Oriented Programmi ... -
IoC原理
2010-06-10 15:31 1407IoC(Inversion of Control)就是由容器控 ... -
Spring AOP使用整理:使用@AspectJ风格的切面声明
2009-08-24 11:31 8379要启用基于@AspectJ风格 ... -
Spring注解类的整理
2009-08-23 01:58 1844二、Spring内置注解 1、@Compone ... -
自定义注解
2009-08-21 14:51 16405java内置注解 1、@Target: 表示该 ... -
Spring AOP使用整理:常用的AutoProxyCreator
2009-04-10 12:44 3632一、自动代理创建器 创建器是BeanPost ...
相关推荐
然而对于一个完整的应用系统,完善的认证和授权机制是必不可少的,Acegi是一个基于Spring的安全框架,探讨了Spring框架集成Acegi的方法,即在Spring的IOC配置文件中定义所有的安全逻辑,改变了传统的通过编写代码的...
Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。因此,Acegi安全...
Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。因此,Acegi安全...
整合其他ORM框架 第4篇 业务层应用 第13章 任务调度和异步执行器 第14章 JavaMail发送邮件 第15章 在Spring中使用JMS 第16章 在Spring中开发Web Service 第17章 使用Acegi实施应用系统安全 第...
整合其他ORM框架 第4篇 业务层应用 第13章 任务调度和异步执行器 第14章 JavaMail发送邮件 第15章 在Spring中使用JMS 第16章 在Spring中开发Web Service 第17章 使用Acegi实施应用系统安全 第...
Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。因此,Acegi安全...
acegi安全框架例子--Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。
整合其他ORM框架 第4篇 业务层应用 第13章 任务调度和异步执行器 第14章 JavaMail发送邮件 第15章 在Spring中使用JMS 第16章 在Spring中开发Web Service 第17章 使用Acegi实施应用系统安全 第...
acegi安全系统,是一个用于spring framework的安全框架,能够和目前流行的web容器无缝集成。它使用了spring的方式提供了安全和认证安全服务,包括使用bean context,拦截器和面向接口的编程方式。因此,acegi安全...
Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。因此,Acegi安全...
×××总共两个zip文件... spring acegi安全框架在用户验证和授权机制的实现上有何过人之处? 如何在spring的基础上进行扩展开发? 你是否曾经也有过分析开源软件源代码的冲动?你想掌握分析源代码的最佳实践吗?
spring acegi安全框架在用户验证和授权机制的实现上有何过人之处? 如何在spring的基础上进行扩展开发? 你是否曾经也有过分析开源软件源代码的冲动?你想掌握分析源代码的最佳实践吗?
spring acegi安全框架在用户验证和授权机制的实现上有何过人之处? 如何在spring的基础上进行扩展开发? 你是否曾经也有过分析开源软件源代码的冲动?你想掌握分析源代码的最佳实践吗?
Spring ACEGI安全框架在用户验证和授权机制的实现上有何过人之处? 如何在Spring的基础上进行扩展开发? 你是否曾经也有过分析开源软件源代码的冲动?你想掌握分析源代码的最佳实践吗?
Spring ACEGI安全框架在用户验证和授权机制的实现上有何过人之处? 如何在Spring的基础上进行扩展开发? 你是否曾经也有过分析开源软件源代码的冲动?你想掌握分析源代码的最佳实践吗?
Spring ACEGI安全框架在用户验证和授权机制的实现上有何过人之处? 如何在Spring的基础上进行扩展开发? 你是否曾经也有过分析开源软件源代码的冲动?你想掌握分析源代码的最佳实践吗?
在安全方面集成Spring的安全框架Acegi和最流行的Ajax技术。与其他框架相比,它提供了各种Web系统开发过程中都需要开发的一些功能,如登陆、用户密码加密,用户管理、根据不同的用户可以展现不同的菜单,同时还带有...
Spring技术内幕 深入... Spring ACEGI安全框架在用户验证和授权机制的实现上有何过人之处? 如何在Spring的基础上进行扩展开发? 你是否曾经也有过分析开源软件源代码的冲动?你想掌握分析源代码的最佳实践吗?