`
boy00fly
  • 浏览: 196952 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Spring security --- Acegi部分配置信息

 
阅读更多

认证处理过滤器authenticationProcessingFilter的配置

  1. < bean id = "authenticationProcessingFilter" class = "org.acegisecurity.ui.webapp.AuthenticationProcessingFilter" >
  2. < property name = "filterProcessesUrl" value = "/j_security_check" />
  3. < property name = "authenticationFailureUrl" value = "/index.jsp?login_error=1" />
  4. < property name = "defaultTargetUrl" value = "/main.do" />
  5. < property name = "authenticationManager" ref = "authenticationManager" />
  6. < property name = "rememberMeServices" ref = "" /> <!-可选-- >
  7. </ bean >
  8. 说明:
  9. 1)负责处理基于表单的身份验证请求。
  10. 2)当接收到与filterProcessesUrl所定义相同的请求时,它会首先通过AuthenticationManager来验证用户身份。如果验证成功,则重定向到defaultTargetUrl所定义的成功登陆页面。如果验证失败,则再从rememberMeServices中获取用户身份。若再获取失败,则重定向到auhenticationFailureUrl所定义的登陆失败页面。
  11. 3)filterProcessesUrl:默认值为/j_acegi_security_check。该值必须与登录页面form的action值一致。
  12. form中输入用户名的input控件的name必须为j_username;输入密码的input控件的name必须为j_password。
  13. 4)rememberMeServices负责通过以cookie的形式保存先前的用户登录信息。在Authentication对象不存在时,rememberMeProcessingFilter会调用rememberMeServices的autoLogin()方法,尝试在cookies中获取用户登录信息,如果存在则返回Authentication对象。在每次用户登录时,如果设置了RememberMe功能,在验证用户身份成功后,则会调用loginSuccess()方法记录用户信息在cookies中,否则调用loginFail()方法清除cookie。

认证管理器authenticationManager的配置

  1. < bean id = "authenticationManager" class = "org.acegisecurity.providers.ProviderManager" >
  2. < property name = "providers" >
  3. < list >
  4. < ref local = "daoAuthenticationProvider" />
  5. < ref local = "anonymousAuthenticationProvider" />
  6. </ list >
  7. </ property >
  8. </ bean >
  9. 说明:
  10. 1)认证管理器用来管理身份验证提供者。它将验证的功能委托给多个Provider,并通过遍历Providers,以保证获取不同来源的身份认证,若某个Provider能成功确认当前用户的身份,authenticate()方法会返回一个完整的包含用户授权信息的Authentication对象,否则会抛出一个AuthenticationException。
  11. 2)无论成功与否,认证管理器都会发布一个ApplicationEvent事件对象。

身份验证提供者的配置

  1. < bean id = "daoAuthenticationProvider" class = "org.acegisecurity.providers.dao.DaoAuthenticationProvider" >
  2. < property name = "userDetailsService" ref = "userDao" />
  3. < property name = "userCache" ref = "userCache" />
  4. < property name = "passwordEncoder" ref = "passwordEncoder" /> <!-可选-- >
  5. </ bean >
  6. < bean id = "anonymousAuthenticationProvider" class = "org.acegisecurity.providers.anonymous.AnonymousAuthenticationProvider" >
  7. < property name = "key" value = "anonymous" />
  8. </ bean >
  9. < bean id = "userDao" class = "com.cjm.web.dao.impl.UserDaoImpl" >
  10. < property name = "sessionFactory" ref = "sessionFactory" />
  11. </ bean >
  12. < bean id = "userCache" class = "org.acegisecurity.providers.dao.cache.EhCacheBasedUserCache" >
  13. < property name = "cache" >
  14. < bean class = "org.springframework.cache.ehcache.EhCacheFactoryBean" >
  15. < property name = "cacheManager" >
  16. < bean class = "org.springframework.cache.ehcache.EhCacheManagerFactoryBean" />
  17. </ property >
  18. < property name = "cacheName" value = "userCache" />
  19. </ bean >
  20. </ property >
  21. </ bean >
  22. < bean id = "passwordEncoder" class = "org.acegisecurity.providers.encoding.Md5PasswordEncoder" />
  23. 说明:
  24. 1)daoAuthenticationProvider:负责提供用户信息,包括用户名和密码。其中取用户名密码的工作交给userDetailsService来做。
  25. 2)anonymousAuthenticationProvider:匿名用户身份验证。
  26. 3)userDao:用于在数据库中获取用户信息。UserDaoImpl需要实现Acegi 提供的UserDetailsService接口类。
  27. 4)userCache:缓存用户和资源相对应的权限信息。每当请求一个受保护资源时,daoAuthenticationProvider就会被调用以获取用户授权信息。如果每次都从数据库获取的话,那代价很高,对于不常改变的用户和资源信息来说,最好是把相关授权信息缓存起来。
  28. 5)passwordEncoder:使用加密器对用户输入的明文进行加密。Acegi 提供了三种加密器:
  29. PlaintextPasswordEncoder---默认,不加密,返回明文
  30. ShaPasswordEncoder---哈希算法(SHA)加密
  31. d5PasswordEncoder---消息摘要(MD5)加密
分享到:
评论

相关推荐

    acegi-security-tiger-1.0.0-RC2.jar.zip

    这个"acegi-security-tiger-1.0.0-RC2.jar.zip"压缩包包含的是Acegi Security的一个早期版本——1.0.0 Release Candidate 2(RC2),专门针对Tiger(Java SE 5.0)版本的Java开发环境。 Acegi Security的主要功能...

    spring-security所需要的jar包,

    2. **acegi-security-1.0.1.jar**:Acegi Security是Spring Security的前身,这个jar包可能被包含在内是为了兼容性或某些特定的功能需求。Acegi Security提供了一套基于Spring的认证和授权机制,但在Spring Security...

    acegi-security-cas-1.0.7.jar

    Acegi是一个专门为SpringFramework提供安全机制的项目,全称为Acegi Security System for Spring.

    spring-security-2.0.5

    Spring Security是基于Spring框架的安全组件,原名为Acegi Security。它为Web应用程序提供了全面的安全服务,包括认证、授权、会话管理以及防止常见攻击(如CSRF、XSS等)。Spring Security通过高度可配置的API,使...

    spring-security-2.0.3

    Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,用于Java应用程序。这个压缩包“spring-security-2.0.3”包含了该框架的2.0.3版本的源代码、文档和可能的库文件。Spring Security的核心功能是...

    acegi-security-1.0.7.jar.zip

    这个"acegi-security-1.0.7.jar.zip"文件包含的是Acegi Security 1.0.7版本的库,它是一个压缩的Java Archive(JAR)文件,专门设计用于增强Spring框架的安全功能。 Acegi Security的核心功能包括身份验证、授权和...

    Acegi学习笔记--Acegi详解实战Acegi实例

    1. **Web安全配置**:在web.xml中配置Acegi的Filter链,如`spring-security-filter-chain`。 2. **Spring配置**:定义`&lt;security:global-method-security&gt;`来启用方法级别的安全控制。 3. **Bean配置**:配置`...

    acegi-security-tiger-1.0.7.jar

    "acegi-security--license.txt"文件则包含了该软件的许可协议,通常这会是Apache License 2.0或其他开源许可证,表明Acegi Security遵循的开源规则,允许自由使用、修改和分发源代码,但可能也需要遵守一定的条款,...

    spring-security-2.0.0.zip

    spring-security将是acegisecurity-1.0.7的下一个版本,acegi将不再出了

    acegi-security-0.8.1.jar.zip

    `acegi-security-0.8.1.jar`是该框架的库文件,包含了所有必要的类和资源,用于在项目中引入Acegi Security的功能。开发者通常会将这个JAR文件添加到项目的类路径中,以便使用其提供的服务。 `springframework-...

    spring security3 中文版本

    自此之后,Spring Security 成为了 Spring 生态系统中的一个重要组成部分,不断迭代更新,以适应不断变化的安全需求和技术发展。 ##### 1.3 发行版本号 Spring Security 3.0.1 是在 Spring Security 3.0 的基础上...

    acegi-security-0.8.3.jar.zip

    总的来说,`acegi-security-0.8.3.jar.zip` 提供了一个早期的Java安全解决方案,对于学习和理解基于Spring的安全架构历史及其发展具有重要意义。在当前的开发环境中,虽然我们更多地转向Spring Security,但理解...

    Spring_Security-3.0.1_中文自学教程.pdf

    Spring Security 起源于 Acegi 安全框架,随后被纳入 Spring 项目中,经过不断的发展和完善,已经成为 Spring 生态系统中不可或缺的一部分。随着版本的迭代,Spring Security 在功能上越来越强大,同时也更加注重...

    spring-security 官方文档 中文版

    Spring Security 最初是由 Luke Taylor 和 Ray Ryan 开发的名为 Acegi Security 的项目,在 2005 年被并入 Spring 项目,并重新命名为 Spring Security。自那时起,Spring Security 经历了多个版本的迭代,不断地...

    acegi-security-0.6.1.jar.zip

    这个"acegi-security-0.6.1.jar.zip"文件包含的是Acegi Security 0.6.1版本的库,以及相关的许可证信息。 Acegi Security的核心功能在于提供了一套全面的身份验证和授权机制,它允许开发者为Web应用程序添加细粒度...

    acegi-security-1.0.4.jar.zip

    `acegi-security--license.txt` 文件通常包含软件的许可协议信息,对于Acegi Security 1.0.4来说,这可能是Apache License Version 2.0,这是一个广泛使用的开源软件许可证,允许自由地使用、修改和分发软件,但要求...

    acegi-security-jetty-0.8.3.jar.zip

    "acegi-security-jetty-0.8.3.jar.zip"文件是Acegi Security与Jetty服务器特定版本(0.8.3)的集成包,它包含了Acegi Security的jar文件以及相关的许可证信息。 Acegi Security的主要功能包括: 1. **身份验证**:...

    acegi-sample.rar_acegi-1.0.7_acegi-sample.part2_spring-1.2.4.jar

    这个压缩包中的"acegi-sample"部分可能包含了一个示例项目,展示了如何在实际应用中配置和使用Acegi Security。而"spring-1.2.4.jar"则是Spring框架的一个较旧版本,表明Acegi Security是在Spring 1.x时代设计的,那...

    spring-security-2.0.4.zip

    随着项目的成熟和社区的发展,Acegi被SpringSource(现在是Pivotal Software的一部分)正式接纳并重命名为Spring Security,以更好地融入Spring生态系统,并保持与Spring的紧密集成。 Spring Security的核心功能...

Global site tag (gtag.js) - Google Analytics