Acegi安全系统介绍

Acegi安全系统介绍1.1 介绍Acegi是一个能够为基于Spring的应用系统提供描述性安全保护的安全框架。

它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring 对依赖注入和面向切面编程的支持。

当保护Web应用系统时,Acegi使用Servlet过滤器来拦截Servlet请求,以实施身份认证并强制安全性。

并且,在第1.4.1节你将会看到,Acegi采取了一种独特的机制来声明Servlet过滤器,使你可以使用Spring IoC注入它所依赖的其他对象。

Acegi也能够通过保护方法调用在更底层的级别上强制安全性。

使用Spring AOP,Acegi代理对象,将“切面”应用于对象,以确保用户只有在拥有恰当授权时才能调用受保护的方法。

无论你正在保护一个Web应用程序还是需要方法调用级别的安全性,Acegi 都是使用如下图所示的4个主要组件来实施安全性。

Acegi基本安全组件1.1.1 安全拦截器为了释放锁舌并打开门,你必须先把钥匙插到锁孔中,并恰当地拨动锁的制栓。

如果钥匙和锁不匹配,就无法拨动制栓并释放锁舌。

但如果你有正确的钥匙,所有的制栓就会接受这把钥匙,锁舌就会释放,从而允许你把门打开。

在Acegi中,可以认为安全拦截器像一把锁的锁舌,能够阻止对应用系统中受保护资源的访问。

为了释放“锁舌”并通过安全拦截器,你必须向系统提供“钥匙”(通常是一对用户名和密码)。

“钥匙”会尝试拨开安全拦截器的“制栓”,从而允许你访问受保护的资源。

1.1.2 认证管理器第一道必须打开的安全拦截器的制栓是认证管理器。

认证管理器负责决定你是谁。

它是通过考虑你的主体(通常是一个用户名)和你的凭证(通常是一个密码)做到这点的。

你的主体定义了你是谁,你的凭证是确认你身份的证据。

如果你的凭证足以使认证管理器相信你的主体可以标识你的身份,Acegi就能知道它在和谁打交道。

1.1.3 访问决策管理器一旦Acegi决定了你是谁,它就必须决定你是否拥有访问受保护的资源的恰当授权。

访问决策管理器是Acegi锁中第二道必须被打开的制栓。

访问决策管理器进行授权,通过考虑你的身份认证信息和与受保护资源关联的安全属性决定是否让你进入。

例如,安全规则也许规定只有主管才允许访问某个受保护资源。

如果你被授予主管权限,则第二道也是最后一道制栓——访问决策管理器——会被打开,并且安全拦截器会给你让路,让你取得受保护资源的访问权。

1.1.4 运行身份管理器当你通过认证管理器和访问决策管理器,安全拦截器会被开启,门已经可以被打开。

但在你转动门把手进入之前,安全拦截器也许还有一件事要做。

即使你已经通过身份认证并且已经获得了访问被保护资源的授权,门后也许还有更多的安全限制在等着你。

比如,你也许已被授权访问查看某个Web页面,但用于创建该页面的对象也许和页面本身有不同的安全需求。

一个运行身份管理器可以用另一个身份替换你的身份,从而允许你访问应用系统内部更深处的受保护对象。

运行身份管理器的用处在大多数应用系统中是有限的。

幸运的是,当你使用Acegi保护应用系统时可以不必使用甚至不必完全理解运行身份管理器。

因此,我们认为运行身份管理器是一个高级课题,在下文中不再深入地探讨它。

现在,你已经看到了Acegi安全性的全貌,让我们回过头来看一下如何配置Acegi安全系统的每一个部分,首先由认证管理器开始。

1.2 管理身份验证决定是否允许用户访问受保护资源的第一步是判断用户的身份。

在大多数应用系统中,这意味着用户在一个登录屏上提供用户名和密码。

用户名(或者主体)告诉应用系统用户声明自己是谁。

为了确证用户的身份,用户需要同时提供一个密码(或凭证)。

如果应用系统的安全机制确认密码是正确的,则系统假设用户的实际身份与他声明的身份相同。

在Acegi中,是由认证管理器负责确定用户身份的。

一个认证管理器由接口org.acegisecurity.AuthenticationManager定义:public interface AuthenticationManager {public Authentication authenticate(Authentication authentication) throws AuthenticationException;}认证管理器的authenticate()方法需要一个org.acegisecurity.Authentication对象(其中可能只包括用户名和密码)作为参数,它会尝试验证用户身份。

如果认证成功,authenticate()方法返回一个完整的Authentication对象,其中包括用户已被授予的权限(将由授权管理器使用)。

如果认证失败,则它会抛出一个AuthenticationException。

正如你所见到的,AuthenticationManager接口非常简单,而且你可以相当容易地实现自己的AuthenticationManager。

但是Acegi提供了ProviderManager,作为AuthenticationManager 的一个适用于大多数情形的实现。

所以,我们不讨论开发自己的认证管理器,而是看一下如何使用ProviderManager。

1.2.1 配置ProviderManagerProviderManager是认证管理器的一个实现,它将验证身份的责任委托给一个或多个认证提供者,如图11.2所示。

图11.2 ProviderManager将身份验证的职责委托给一个或多个认证提供者ProviderManager的思路是使你能够根据多个身份管理源来认证用户。

它不是依靠自己实现身份验证,而是逐一遍历一个认证提供者的集合,直到某一个认证提供者能够成功地验证该用户的身份(或者已经尝试完了该集合中所有的认证提供者)。

你可以在Spring配置文件中按如下方式配置一个ProviderManager:<bean id="authenticationManager"class="org.acegisecurity.providers.ProviderManager"><property name="providers"><list><ref bean="casAuthenticationProvider" /><beanclass="org.acegisecurity.providers.anonymous.AnonymousAuthenticationProvider"><property name="key" value="changeThis" /></bean></list></property></bean>通过providers属性可以为ProviderManager提供一个认证提供者的列表。

通常你只需要一个认证提供者,但在某些情况下,提供由若干个认证提供者组成的列表是有用的。

在这种情况下,如果一个认证提供者验证身份失败,可以尝试另一个认证提供者。

一个认证提供者是由org.acegisecurity.provider.AuthenticationProvider接口定义的。

Spring提供了若干个AuthenticationProvider的有用实现,如下表所列:表11.1 Acegi选择的认证提供者认证提供者 目 的org.acegisecurity.adapters.AuthByAdapterProvider使用容器的适配器验证身份。

org.acegisecurity.providers.cas.CasAuthenticationProvider根据Yale中心认证服务验证身份。

org.acegisecurity.providers.dao. DaoAuthenticationProvider 从数据库中获取用户信息,包括用户名和密码。

org.acegisecurity.providers.jaas.JaasAuthenticationProvider从JAAS登录配置中获取用户信息。

org.acegisecurity.providers.ldap.LdapAuthenticationProvider利用ldap来验证用户信息。

org.acegisecurity.providers.rcp.RemoteAuthenticationProvider根据远程服务验证用户身份。

org.acegisecurity.runas. 针对身份已经被运行身份管理器替换的用户进行认证。

RunAsImplAuthenticationProvider org.acegisecurity.providers. TestingAuthenticationProvider 用于单元测试。

自动认为一个TestingAuthenticationToken 是有效的。

不应用于生产环境。

你可以认为一个AuthenticationProvider 是一个下属的AuthenticationManager 。

事实上,AuthenticationProvider 接口也有一个authenticate()方法,该方法的签名与AuthenticationManager 的authenticate()方法完全一样。

在本节中,我们关注表11.1中列出的三个最常用的认证提供者。

首先从使用DaoAuthenticationProvider 进行简单的基于数据库验证身份开始。

1.2.2 根据数据库验证身份大多数应用系统将包括用户名和密码在内的用户信息保存在数据库中。

如果这和你的情况相符,则你会发现Acegi 提供的以下认证提供者是有用的: org.acegisecurity.providers.dao.DaoAuthenticationProvider.在本节中,我们看一下如何使用DaoAuthenticationProvider 根据保存在某个数据源(通常是关系数据库)中的用户信息进行简单的身份验证。

声明一个DAO 认证提供者一个DaoAuthenticationProvider 是一个简单的认证提供者,它使用DAO 来从数据库中获取用户信息(包括用户的密码)。

取得了用户名和密码之后,DaoAuthenticationProvider 通过比较从数据库中获取的用户名和密码以及来自认证管理器的通过Authentication 对象中传入的主体和凭证完成身份验证(见图11.3)。

合集下载

基于Acegi授权管理的高可用单点登录系统的研究与设计

基于Acegi授权管理的高可用单点登录系统的研究与设计

i f n e — g r a i n e d a u t h o i r s e d m a n a g e m e n t f o r C A S S S O s y s t e m b a s e d o n B / S( b r o w s e r / s e r v e r )s t r u c t u r e b y i n t e g r a t i n g t h e A c e g i s e c u i r t y f r a m e w o r k
1 Ya I e - C AS工 作 机 制
1 . 1 C AS体 系结构
C A S _ 4 . 5 是Y a l e 大学开发 的一款针对 B / S 架构 的开 源单 点 登 录软件 。由于它使用了 X M L规范并 且可 以在 S e n , l e t 容器中 运行 , 所 以具有很强 的扩展 性。在基 于 B / S架构 的单 点登 录系
ma k e s t h e S S O s y s t e m h a v e n i c e a v a i l a b i l i t y a n d s t a b i l i t y . Ke y wo r d s CAS Ac e g i S S O Av a i l a b i l i t 而服务 器 中的资源 已经受 到 C A S的保
收稿 日期 : 2 0 1 2 — 0 7— 0 3 。上海 市科委 基金项 目( 1 0 D Z 2 2 9 1 8 0 0 , 1 0 D Z 1 1 2 2 6 0 0 ) 。单曙兵 , 助理工程师 , 主研 领域 : 软件 工程。孔磊 , 高工。
统中, C A S的工作过程对于用户来说是透 明的 , 用户通过浏览 器

浅谈Spring框架下Acegi安全架构的应用

浅谈Spring框架下Acegi安全架构的应用
Frme tc niu su d rS rngfa l n lz d a ddic se t or s o dn ouin . a e h q e n e p i r me ae a aye n s u s d wi c re p n ig s lto s h
关键 词 : cg IC S r g A e i o ; pi ; n
摘 要 : 于一个 We 应 用 系统来说 , 对 b 完善 的认证 授权机 制 是十 分重要 的 。本文 就 Sr g 架 下的 A ei 全 架构技 术进 行 了分析 、 讨 , pi 框 n cg安 探 并 给 出了相 应 的解决 方案 。
Ab ta t o b a p iain s se s r c :F rawe p lc to y tm,i rvn h uhe tc to nd a t o zto c a im s v r mp ra t n ti a e ,Ac g ec rt mp o ig t e a t n iain a uh r ain me h ns i ey i otn .I h sp p r i e iS u i y
刘明刚 LuMiga g李德友 L eo ; i n gn ; i yu 李文媛 L n u n D i We y a
( 尔滨金融 学 院 , 哈 哈尔滨 103 ) 500
( ri ia ca Isi t Habn 10 3 C ia) HabnFnn il ntue, r程
浅谈 S r g框架下 A ei pi n cg 安全 架构 的应 用
Dic s i n o t e Ap i a i n fAc g e ur t a s u so n h plc to o e iS c iy Fr me und r Sp i g Fr m e e rn a

浅谈Spring框架下Acegi安全架构的应用

浅谈Spring框架下Acegi安全架构的应用
1.7 1
Acegi安全框架使用Spring框架提供的loC实现来注入Acegi 安全组件之间的依赖关系,并且用XML配置文件来描述安全组件 之间的依赖关系。
<bean id=‘’authenticationProcessingFilter” class=”org.acegisecurity.ui.webapp.AuthenticationProcessing Filter”> <property
摘要:对于一个Web应用系统来说,完善的认证授权机制是十分重要的.本文就Spring框架下的Acegi安全架构技术进行了分析、探讨,并 给出了相应的解决方案.
Abstract:For

web application system,improving the authentication and authorization mechanism is
Filter(ETF)处理认证和授权过程中的异
常情况,比如授权失败。在这些异常情况中,ETF将决定如何进行操 作。
3.5 Interceptor Filtero
Acegi安全框架使用Interceptor Fiher对用户进行授权操作。
Web应用程序中集成Acegi安全框架解决方案 在Web工程项目中使用Acesi安全框架,首先要将Acegi相应 的JAR包下载,导入到工程中。配置web.xml,将Sping的Ioc容器装 载到ServletContext中,并且配置FilterToBeanProxv过滤器。接下来 配置Spring的配置文件acegisecurity—config.xml文件,最后部署并 运行项目即可。本文由于篇幅限制省略了具体代码。
基金项目:黑龙江省教育厅科学技术研究项目《课题编号11535008

Acegi+(version1.0.4)中文参考手册

Acegi+(version1.0.4)中文参考手册

Acegi (version1.0.4)中文参考手册acegi参考手册(v1.0.4)[译]-序言序言Acegi Security为基于J2EE的企业应用软件提供全面的安全解决方案。

正如你在本手册中看到的那样,我们尝试为您提供有用的,高可配置的安全系统。

安全是一个永无止境的目标,获取一个全面的,系统级的实现方式是至关重要的。

在安全界,我们鼓励你采用“分层安全”,这样每个层都确保自身尽可能的安全,另外的层提供另外的安全。

每个层自身越“紧密”,你的系统就越鲁棒和安全。

在底层,你要处理传输入安全和系统认证,减少“中间人攻击”(man-in-the-middle attacks)。

接下来你要使用防火墙,结合VPN或者IP安全来确保只有认证过的系统能够尝试连接。

在企业环境中,你可能部署DMZ(demilitarized zone,隔离区)来把面向公众的服务器和后端的数据和应用服务器分隔开。

在以非授权用户运行进程和文件系统安全最大化上,你的操作系统也将扮演一个关键的角色。

接下来你要防止针对系统的拒绝服务和暴力攻击。

入侵检测系统在检测和应对攻击方面尤其有用,这些系统可以实时屏蔽恶意TCP/IP地址。

在更高层上,你的Java虚拟机需要进行配置,将授予不同Java类型的权限最小化,然后,你的应用程序要对添加针对自身特定问题域的安全配置。

Acegi Security使后者-应用程序安全变得容易。

当然,你要正确对待上述提到的每个安全层,以及包含于每个层的管理因素。

这样的管理因素具体包括:安全公告监测,补丁,人工诊断,审计,变更管理,工程管理系统,数据备份,灾难恢复,性能评测,负载监测,集中日志,应急反应程序等等。

Acegi Security专注于在企业应用安全层为您提供帮助,你将会发现和各式各样的需求和商业问题领域一样多。

银行系统的需求和电子商务应用的需求不同。

电子商务应用和售卖军用自动工具的公司的需求不同。

这些客户化的需求使得应用安全显得有趣,富有挑战性而且物有所值。

Acegi 知识点文档

Acegi 知识点文档

中国数码技术研发中心
中国数码技术研发中心
Acegi 主要功能 - 域对象许可
中国数码技术研发中心
Acegi 配置

<filter> <filter-name>Acegi Filter Chain Proxy</filter-name> <filter-class> org.acegisecurity.util.FilterToBeanProxy </filter-class> <init-param> <param-name>targetClass</param-name> <param-value> org.acegisecurity.util.FilterChainProxy </param-value> </init-param> </filter> <filter-mapping> <filter-name>Acegi Filter Chain Proxy</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Acegi 概要

用于 Spring 的安全框架 认证和授权机制 耶鲁单点登陆 X509 认证 Channel Security 频道安全管理
中国数码技术研发中心
Acegi 安全控制粒度

URL 资源访问控制
http://apps:8080/index.htm -> for public http://apps:8080/user.htm -> for authorized user

Acegi+Security整合CAS实例

Acegi+Security整合CAS实例

Acegi Security整合CAS实例前言Acegi Security是Spring Framework的一个子项目,主要专注于容器中应用程序的安全控制。

CAS是耶鲁大学贡献的一个单点登陆系统,提供多个应用程序的单点登陆控制,CAS和acegi 进行整合,CAS负责完成认证部分,acegi负责应用程序的授权。

在Acegi Security的文档中虽然有关于CAS整合的详细描述,但由于两个系统目前都很活跃,版本不断跟新,完全依照旧版本的文档并不能完成相关的整合工作,下面以实际操作的例子说明acegi如何整合CAS 3.0。

由于CAS认证要求系统运行在SSL上,所以在对两个应用程序配置之前,首先要配置容器的证书。

本文配置对象为CAS Server 3.04Acegi Security 1.0RC2Apache Tomcat 5.5.12配置Tomcat使用JA V A keytool生成Tomcat 使用证书keytool -alias tomcat -genkey -keyalg RSA -validity 9999 -storepass password -keypass password 您的名字与姓氏是什么?[localhost]:您的组织单位名称是什么?[itdcl]:java dev您的组织名称是什么?[itdcl]:您所在的城市或区域名称是什么?[guangzhou]:您所在的州或省份名称是什么?[guangdong]:该单位的两字母国家代码是什么[CN]:CN=localhost, OU=java dev, O=itdcl, L=guangzhou, ST=guangdong, C=CN 正确吗?[否]:y导出证书到文件中cd <jre dir>\lib\securitykeytool -export -v -rfc -alias tomcat -file acegisecurity.txt -storepass password</jre>把证书设置为本机可信任证书keytool -import -v -file acegisecurity.txt -keypass password -keystore cacerts -storepass changeit -alias tomcatOwner: CN=localhost, OU=java dev, O=itdcl, L=guangzhou, ST=guangdong, C=CN发照者:CN=localhost, OU=java dev, O=itdcl, L=guangzhou, ST=guangdong, C=CN序号:4420ca9f有效期间:Wed Mar 22 11:55:11 CST 2006 至:Sat Aug 06 11:55:11 CST 2033认证指纹:MD5:EA:27:FA:1E:B8:C2:05:24:9A:2B:D3:44:8F:0F:C3:78SHA1:B7:61:12:19:BF:54:75:D4:E9:A4:EA:9C:2A:5C:A9:B9:17:99:CA:F1信任这个认证?[否]:y认证已添加至keystore中[正在存储cacerts]打开Tomcat的ssl端口,配置相关参数<connector port="8443" maxHttpHeaderSize="8192"maxThreads="150" minSpareThreads="25" maxSpareThreads="75"enableLookups="false" disableUploadTimeout="true"acceptCount="100" scheme="https" secure="true"clientAuth="false" sslProtocol="TLS" keystorePass="password"/>测试Tomcat SSL安装成功打开页面https://localhost:8443/jsp-examples,访问相关例子,如果没有异常,说明SSL配置成功配置CAS Server重新配置CAS Server的用户认证部分打开在WEB-INF中deployerConfigContext.xml,重新配置用户认证,文件本身就是spring 的配置文件,在最后增加以下bean<bean id="inMemoryDaoImpl" class="erdetails.memory.InMemoryDaoImpl"><property name="userMap"><value>marissa=koala,ROLES_IGNORED_BY_CASdianne=emu,ROLES_IGNORED_BY_CASscott=wombat,ROLES_IGNORED_BY_CASpeter=opal,disabled,ROLES_IGNORED_BY_CAS</value></property></bean><bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider"><property name="userDetailsService"><ref bean="inMemoryDaoImpl"/></property></bean><bean id="MyAuthenticationManager" class="org.acegisecurity.providers.ProviderManager"><property name="providers"><list><ref bean="daoAuthenticationProvider"/></list></property></bean>用配置好的<bean id="casAuthenticationHandler" class="org.acegisecurity.adapters.cas3.CasAuthenticationHandler"><property name="authenticationManager"><ref bean="MyAuthenticationManager"/></property></bean>替代原来的SimpleTestUsernamePasswordAuthenticationHandler编译org.acegisecurity.adapters.cas3.CasAuthenticationHandler因为在acegisecurity 1.0RC2正式发布的CAS adapter里面没有casAuthencationHandler,所以需要从acegisecurity的仓库中把原码check出来编译casAuthencationHandler, 打包到acegi-security-CAS-1.0.0-RC2.jar中发布CAS应用程序把重新打包过的acegi-security-CAS-1.0.0-RC2.jar和acegi-security-1.0.0-RC2.jar复制到WEB-INF/lib目录中启动tomcat, 如果看到错误提示信息,则说明CAS Server部署成功测试CAS部署成功在浏览器中访问http://localhost:8080/CAS,根据配置文件的用户信息,这里使用scott/wombat 登录,如果提示登录成功,则表示新的用户认证部分修改成功配置contacts-CAS确认配置applicationContext-acegi-security.xml文件中https://localhost:8443/CAS/为CAS服务器的URLhttps://localhost:8443/contacts-CAS为contacts应用程序URL对于系统默认的可信证书\lib\security\cacerts可以使用<property name="trustStore"><value>/some/path/to/your/lib/security/cacerts</value></property>配置,如果确信上面import动作已经把证书倒入,可以不用配置这个属性部署contacts-CAS, 检验是否整合成功使用http://localhost:8080/contacts-CAS访问应用程序,使用marissa/koala可以正常使用,如果用scott/wombat则为access。

阿基里斯网络安全认证

阿基里斯网络安全认证阿基里斯网络安全认证是一种全新的网络安全认证体系,旨在保护用户的隐私和数据安全。

该认证系统以希腊神话中的英雄阿基里斯命名,象征着坚不可摧的力量和无可匹敌的能力。

阿基里斯网络安全认证是一个全面、多层次的认证系统,包括身份认证、访问认证、数据传输认证等多个防护层面,以确保网络安全的全面性和完整性。

阿基里斯网络安全认证的核心理念是采取分层防御和多重认证的策略,以打造一个安全稳固的网络环境。

首先,用户需要进行身份认证,系统会对用户的身份进行验证,确保只有合法的用户才能够访问网络资源。

其次,用户在访问特定资源时,需要通过访问认证,确保用户具备相应的权限才能够进入。

而用户的数据传输也需要经过数据传输认证,确保数据传输的安全性和完整性。

阿基里斯网络安全认证的优势在于其高度的可定制性和扩展性。

该认证系统可以根据用户的需求和要求进行定制,灵活适应不同组织和个体的安全需求。

同时,阿基里斯网络安全认证还可以与其他安全系统进行无缝对接,提供更全面的安全保障。

不仅如此,该认证系统还具备自动智能化的特点,能够自动监测和识别潜在的威胁,及时采取相应的防御措施。

阿基里斯网络安全认证的应用范围广泛,从个人用户到大型企业都可以受益于该认证系统的保护。

对于个人用户来说,该认证系统可以提供个人隐私保护和账户安全保障,防止个人信息泄露和账户被盗用。

对于企业来说,该认证系统可以保护企业的重要数据和网络资源,防止黑客攻击和数据泄露,保证企业的业务运营和客户信任。

总而言之,阿基里斯网络安全认证是一种高效、全面的网络安全认证系统,能够提供多层次的认证和防御,保护用户的隐私和数据安全。

该认证系统具备高度的可定制性和扩展性,能够应对不同用户的安全需求。

同时,阿基里斯网络安全认证还具备自动智能化的特点,能够自动检测和防御潜在的威胁。

阿基里斯网络安全认证的应用范围广泛,可以满足个人用户和企业的安全需求。

基于Spring的安全框架Acegi在Web系统中的应用

Ab t a t I n yitg a e p l a o , t sa s l tl e es rl o p re t u h t t na da to i ain s se . sr c : na n e rtda p i t n iwa b o ueyn c s ai ci yfra e fc l t e i i n ya n c o a uh r t tm z o y A t dt n l to r i o a me dwa ov r i t s r o g do a i h st e d c u e l g e nwh t e es eh dr h t c e s e c o I eb o d gi ci n r e rh / h h a i t oa c s t r s u . yc i n a t so g h c n o
ei 以访 问的资 源不 同。例如 :一个 公司具 有几个部 门 , 精 心 配置 Ac g 安全 系 统能够 轻 松地适 用 于 复杂的 安 全需 求 。 总 经理 有 权察 看所 有 员工 的信 息 ,而 部 门经 理 只能 安全 涉 及到 两个 不 同的概 念 ,认 证和 授权 。认 察看本 部 门 员工的 信 息 。传统 的作 法是 通过 编 写代

要:任 何一个 完整 的应 用 系统 ,完善 的认证和授权 机制是必 不可 少的。传统的作 法是 通过编 写代
码 , cin 或 srlt 中判 断登 录的用户是否有权 限访 问该资源 , 在a t s eves o 这样 就使安 全逻辑 和业 务逻辑 耦合在一 起 ,这 与软 件 系统要 求高 内聚,低 耦合 的原 则相违 背。 e i Ac g 是一个 基于 S r g的安 全架构 ,所有 的安 全逻 pi n

spring acegi安全框架组件使用——通过一个项目实例详解acegi的使用


的 主要组 件如何 使用, 如何 配置, 以及 组件的 含义。
关键词: s pr i ng 框架 acegi 安全框架 组件
中图 分类号: TP3 93 . 0 3
文献标识码: A
文 章编号: 1 67 2- 37 91 ( 2 00 8) 09( a) - 0 02 4- 03
1 什么是安全框架 在 we b 开 发 中 , 经常 需 要 进 行 安全 管
信息技术
——通过一个项目实例详解 ac egi 的使用
卢卫 华 ( 上 海大学计 算机学院 上海 2 0 0 4 3 6 ; 上海信 诚通数码 科技有限 公司 上 海 2 0 0 1 3 5 )
摘 要: s pr i ngf r amewor k是目前流行的j 2ee 框架, acegi 是一个基于 s pr i ng的应用系统安全保护框架。文中根据项目实例, 具体说明了ace gi
理, 例如当用户访问某个路径时提示用户 登 陆; 通 过 检 查安 全 标 记, 对用 户 身 份进 行 认证; 将成功的身份验证定向到所请求的 路径上 等等。 这些都是 安全的 。使用 s pr i ng ac e gi ( Ah- s e e - g ee ) 安 全框架 能顺利 的完成 安全的 工作。
管 理器( Ma na ge r ) : a ce gi 使用管 理器实 现 身 份 验 证 处 理 和 注 销 服 务 。同 时 管 理 器 由不同的提供者 提供较低级的安全服务 。
提 供者( Pr o v i de r ) : 提 供者 用于和 不同 类 型的 数 据 存储 服 务 通信 , 例 如 , 关 系数 据 库 。 这 样 用 户 库和 访 问 控 制 可 以 存 储 在 数 据库中。

Acegi

Acegi简介Acegi Security为Spring Framework提供一个兼容的安全认证服务(security services).最近利用这个做了几个应用,想在接下来的几天里陆续写点下来,如果对大家有帮助,欢迎与我一起讨论,共同进步。

Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。

它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。

因此,Acegi安全系统能够轻松地适用于复杂的安全需求。

安全涉及到两个不同的概念,认证和授权。

前者是关于确认用户是否确实是他们所宣称的身份。

授权则是关于确认用户是否有允许执行一个特定的操作。

Acegi提供两种类型的权限控制,对方法的权限控制和对URL的权限控制。

Acegi简介二,简单配置记录一下最简单的acegi的配置。

首先需要在web.xml中添加一些:<context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/applicationContext.xml,/WEB-INF/action-servlet.xml,/WEB-IN F/spring-beans.xml,/WEB-INF/applicationContext-security.xml,/WEB-INF/applicationConte xt-aodragon.xml</param-value></context-param>这个是定义spring的上下文,当然对应的还有<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-clas s></listener>然后就是需要定义一些filter,这是acegi运行的定义<filter><filter-name>securityFilter</filter-name><filter-class>org.acegisecurity.util.FilterToBeanProxy</filter-class><init-param><param-name>targetClass</param-name><param-value>org.acegisecurity.util.FilterChainProxy</param-value></init-param></filter><filter-mapping><filter-name>securityFilter</filter-name><url-pattern>/j_security_check</url-pattern></filter-mapping><filter-mapping><filter-name>securityFilter</filter-name><url-pattern>/j_acegi_exit_user</url-pattern></filter-mapping><filter-mapping><filter-name>securityFilter</filter-name><url-pattern>*.html</url-pattern></filter-mapping><filter-mapping><filter-name>securityFilter</filter-name><url-pattern>*.jsp</url-pattern></filter-mapping><filter-mapping><filter-name>securityFilter</filter-name><url-pattern>*.do</url-pattern></filter-mapping>当然如果你需要在页面中用到acegi的TAG再定义一下<taglib><taglib-uri>/WEB-INF/authz</taglib-uri><taglib-location>/WEB-INF/tld/authz.tld</taglib-location></taglib>到这里,web.xml 里需要特别添加的就这么多了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档