在项目中应用Spring的Acegi安全框架的步骤

0、准备:配置数据源

1、配置认证管理器(org.acegisecurity.providers.ProviderManager)

1.1声明一个DAO认证提供者
即:配置AuthenticationDao的实例(依赖0步骤):

Acegi提供了两个可供选择的AuthenticationDao的实例:InMemoryDaoImpl(内存DAO)和JdbcDaoImpl(JDBC DAO)。

注意:InMemoryDaoImpl有明显的局限性。最主要的一点是,对安全性进行管理时要求你重新编辑Spring的配置文件并且重新部署应用。因此,反对在生产环境下使用InMemoryDaoImpl,而是应该考虑使用JdbcDaoImpl。


1.2选择并配置认证提供者(依赖1.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.dao.PasswordDaoAuthenticationProvider 从数据库中获取用户信息,但让底层的数据源完成实际的身份验证。
org.acegisecurity.providers.rcp.RemoteAuthenticationProvider 根据远程服务验证用户身份。
org.acegisecurity.runas.RunAsImplAuthenticationProvider 针对身份已经被运行身份管理器替换的用户进行认证。
org.acegisecurity.providers.TestingAuthenticationProvider 用于单元测试。自动认为一个TestingAuthenticationToken是有效的。不应用于生产环境。


1.3配置认证管理器(依赖1.2步骤)

可选配置:使用加密的密码(Acegi提供了三个密码编码器)、缓存用户信息。


2、授权管理器配置(实现org.acegisecurity.AccessDecisionManager接口)



2.1配置访问决策投票者
(实现了net.sf.acegisecurity.vote.AccessDecisionVoter接口)


2.2授权管理器配置(依赖2.1步骤)

Acegi提供了适用于大多数情形的AccessDecisionManager的三个实现类。

Acegi的访问决策管理器如何计票
访问决策管理器 如 何 决 策
AffirmativeBased 当至少有一个投票者投允许访问票时允许访问
ConsensusBased 当所有投票者都投允许访问票时允许访问
UnanimousBased 当没有投票者投拒绝访问票时允许访问


3、方法安全访问配置


3.1配置方法安全访问的拦截器(依赖1和2步骤)

3.2配置要安全代理的bean(依赖3.1步骤)


4、真正对URL资源保护的filterSecurityInterceptor配置


5、配置认证入口点和对应的过滤处理器

Acegi提供了三个现成的认证入口点:

(1)、 BasicProcessingFilterEntryPoint——通过向浏览器发送一个HTTP 401(未授权)消息,由浏览器弹出登录对话框,提示用户登录;

(2)、AuthenticationProcessingFilterEntryPoint——将用户重定向到一个基于HTML表单的登录页面;

(3)、CasProcessingFilterEntryPoint——将用户重定向至一个Yale CAS登录页面。

无论使用哪种认证入口点,都会提示用户需要提供用户名/密码来标识他/她自己的身份。

当用户提交用户名和密码之后,Acegi需要通过某种方式给予认证管理器一个验证用户身份的机会。

处理认证请求的工作由认证处理过滤器负责完成。Acegi提供了三个认证处理过滤器:

(1)、BasicProcessingFilter——处理HTTP基本身份验证请求;

(2)、AuthenticationProcessingFilter——处理基于表单的身份验证请求;

(3)、CasProcessingFilter——基于CAS服务票据的存在性和有效性验证用户身份。


可配置基于表单的身份验证或者基本身份验证配置或者CAS身份验证。


6、配置安全强制过滤器(依赖4和5步骤)

7、集成处理器配置 (?)
8、通道处理器配置(可选)


9、exceptionTranslationFilter是用来捕获当授权失败的时候会抛出异常


10、代理过滤器处理器的配置


11、在web.xml中配置代理过滤器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值