Acegi配置指南.docx

上传人:b****6 文档编号:7839110 上传时间:2023-01-26 格式:DOCX 页数:33 大小:674.26KB
下载 相关 举报
Acegi配置指南.docx_第1页
第1页 / 共33页
Acegi配置指南.docx_第2页
第2页 / 共33页
Acegi配置指南.docx_第3页
第3页 / 共33页
Acegi配置指南.docx_第4页
第4页 / 共33页
Acegi配置指南.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

Acegi配置指南.docx

《Acegi配置指南.docx》由会员分享,可在线阅读,更多相关《Acegi配置指南.docx(33页珍藏版)》请在冰豆网上搜索。

Acegi配置指南.docx

Acegi配置指南

Acegi配置指南

(1)

AcegiDemo

web.xml配置

代码:

   ...

   

      AcegiFilterChainProxy

      

         org.acegisecurity.util.FilterToBeanProxy

      

      

         targetBean

         filterChainProxy

      

   

   ...

   

      AcegiFilterChainProxy

      /*

   

   ...

说明:

采用Web的过滤器,构造一个过滤器链代理。

初始参数:

参数名

描述

targetBean

从Spring中查找Bean名一致的类,交由该类处理真正的Web过滤。

推荐使用。

targetClass

从JVM中查找类名一致的类,交由该类处理真正的Web过滤。

不同J2EE容器可能会导致不同结果,会被targetBean参数覆盖。

不推荐使用。

init

初始值。

可能值包括:

--[if!

supportLists]-->Ø 

--[endif]-->lazy:

延迟加载。

主要解决由于Spring采用ContextLoaderServlet加载模式时有可能会晚于该filter而导致filter加载失败的问题。

lifecycle

指定生命周期。

可能值包括:

--[if!

supportLists]-->Ø 

--[endif]-->servlet-container-managed:

容器托管。

一般情况下,Acegi的Filter采用Spring的AOP回调,启动和结束调用beforeXxx()和afterXxx()方法。

如果采用J2EE规范中提供的filter方法init()和destroy(),设置该参数。

acegi.xml配置

过滤器链(filterChainProxy)

代码:

...

--过滤器链代理-->

   

      

          PATTERN_TYPE_APACHE_ANT

          /**=httpSessionContextIntegrationFilter,

            basicProcessionFilter,

            exceptionTranslationFilter,

            filterInvocationInterceptor

      

   

...

说明:

过滤器链,配置一组过滤器。

参数:

参数

描述

filterInvocationDefinitionSource

指定一组过滤器的Bean名。

过滤器:

过滤器

描述

httpSessionContextIntegrationFilter

负责完成Acegi上下文与HTTPSession同步。

basicProcessionFilter

负责完成用户的认证。

exceptionTranslationFilter

负责处理认证和授权中出现的异常。

filterInvocationInterceptor

负责完成用户的授权。

SpringBean关系图:

--[if!

vml]-->

--[endif]-->

说明:

每个图块为一个SpringBean。

斜体Bean和同名正体Bean为同一个Bean。

HTTP会话集成(httpSessionContextIntegrationFilter)

代码:

--HTTP会话集成-->

   

说明:

负责完成Acegi上下文与HTTPSession同步。

如果HTTPSession中存放了之前的认证信息,将其还原到Acegi上下文中。

退出应用时会清除掉HTTPSession中的认证信息。

参数:

Bean

参数

描述

httpSessionContextIntegrationFilter

HTTP会话集成

allowSessionCreation

是否创建Session。

可能值包括:

--[if!

supportLists]-->Ø 

--[endif]-->true:

创建Session。

默认值。

--[if!

supportLists]-->Ø 

--[endif]-->false:

不创建Session。

基本认证(basicProcessionFilter)

代码:

--HTTP基本认证-->

   

   

 

--认证管理器-->

   

      

          

      

   

--认证源提供者-->

   

--用户信息提供者(内存级)-->

   

      admin=password,ROLE_ADMIN

   

 

--HTTP基本认证入口点-->

   

说明:

负责完成用户的认证,会调用认证管理器进行用户认证。

如果认证不成功调用EntryPoint,构造返回信息,如401,浏览器会弹出对话框要求用户输入用户名和密码。

需要指派认证管理器、认证源和EntryPoint。

参数:

Bean

参数

描述

basicProcessingFilter

基本认证过滤器

authenticationManager

指派认证管理器。

authenticationEntryPoint

指派EntryPoint。

authenticationManager

认证管理器

providers

指派认证源提供者。

多值。

daoAuthenticationProvider

DAO认证源提供者

userDetailsService

指派认证实现服务。

inMemDaoImpl

用户信息源(内存)

userMap

用户名/密码/角色信息,写死在配置文件中。

一般用于演示。

格式:

uid=pw,role

basicProssingFilterEntryPoint

基本认证入口点

realmName

返回到浏览器的提示信息:

域名。

SpringBean关系图:

--[if!

vml]-->

--[endif]-->

说明:

每个图块为一个SpringBean。

斜体Bean和同名正体Bean为同一个Bean。

异常处理(exceptionTranslationFilter)

代码:

--异常处理-->

   

   

说明:

负责处理认证和授权中出现的异常。

如果出现异常,调用EntryPoint。

参数:

Bean

参数

描述

exceptionTranslationFilter

异常处理过滤器

authenticationEntryPoint

指派EntryPoint。

createSeesionAllowed

是否创建Session。

可能值包括:

--[if!

supportLists]-->Ø 

--[endif]-->true:

创建Session。

默认值。

--[if!

supportLists]-->Ø 

--[endif]-->false:

不创建Session。

SpringBean关系图:

--[if!

vml]-->

--[endif]-->

说明:

每个图块为一个SpringBean。

斜体Bean和同名正体Bean为同一个Bean。

授权拦截(filterInvocationInterceptor)

代码:

--授权拦截-->

   

   

   

      

          PATTERN_TYPE_APACHE_ANT

          /securedpage.jsp=ROLE_ADMIN

      

   

--授权策略-->

   

      

          

      

   

--投票策略实现-->

负责完成用户的授权。

给受保护的Web资源指定角色,指定授权策略。

参数:

Bean

参数

描述

filterInvocationInterceptor

授权拦截器

authenticationManager

指派认证管理器。

accessDecisionManager

指派访问策略管理器。

objectDefinitionSource

Web资源/角色信息,写死在配置文件中。

一般用于演示。

格式:

/uri=role

accessDecisionManager

授权策略管理器

decisionVoters

指派投票策略。

多值。

roleVoter

投票策略实现

 

SpringBean关系图:

--[if!

vml]-->

--[endif]-->

说明:

每个图块为一个SpringBean。

斜体Bean和同名正体Bean为同一个Bean。

监听器

代码:

--认证监听器-->

--授权监听器-->

说明:

监听Acegi的认证/授权过程,并生成日志。

完整关系图

--[if!

vml]-->

--[endif]-->

说明:

每个图块为一个SpringBean。

斜体Bean和同名正体Bean为同一个Bean。

 

Acegi配置指南

(2)

认证源配置

DAO认证源

代码:

--HTTP基本认证-->

   

   

 

--认证管理器-->

   

      

          

      

   

--认证源提供者DAO-->

   

   

   

--

   

   

   

    -->

--用户信息提供者(内存级)-->

   

--

   

      admin=password,ROLE_ADMIN

   

    -->

   

      

          

users.properties"/>

      

   

--用户信息提供者(数据库级)-->

   

      selectusername,password,enabledfromuserswhereusername=?

   

   

      selectusername,authorityfromuserswhereusername=?

      

--

      selectusername,authorityfromauthoritieswhereusername=?

       -->

   

   

--明文密码编码-->

   

--MD5密码编码-->

   

--用户信息缓存-->

   

参数:

Bean

参数

描述

daoAuthenticationProvider

Dao认证源提供者

userDetailsService

指派用户信息提供者(必需)

passwordEncoder

指派密码编码器

userCache

指派缓存

saltSource

指定加盐模式

forcePrincipalAsString

 

hideUserNotFoundExceptions

 

includeDetailsObject

 

messageSource

 

postAuthenticationChecks

 

preAuthenticationChecks

 

inMemDaoImpl

用户信息源(内存)

userProperties

Properties,可以指定Properties文件路径。

userMap

Map,写死在xml中。

jdbcDaoImpl

用户信息源(数据库)

usersByUsernameQuery

查询用户信息的SQL①

authoritiesByUsernameQuery

查询用户权限的SQL②

dataSource

指定数据源

plaintextPasswordEncoder

密码编码器(明文)

ignorePasswordCase

是否忽略密码大小写,默认值为否

md5PasswordEncoder

密码编码器(MD

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1