知识大全 浅谈Acegi配置-Spring-Java[1]

Posted

篇首语:喜欢读书,就等于把生活中寂寞的辰光换成巨大享受的时刻。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 浅谈Acegi配置-Spring-Java[1]相关的知识,希望对你有一定的参考价值。

浅谈Acegi配置-Spring-Java[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Acegi是基于Spring的一个开源的安全认证框架 现在的最新版本是 Acegi的特点就是有很多的过滤器 不过我们也用不到这么多的过滤器 只是可以把它们看作为一个个的模块 在用的时候加上自己用的著的即可 由于认证的流程的方面比较复杂导致它的配置很复杂 如果能摸清它的工作原理还是不太难 下面用比较顺着人思维的流程过一遍

  这里只列出常用的过滤器和拦载器

   过滤器 HttpSessionContextIntegrationFilter authenticationProcessingFilter BasicProcessingFilter RememberMeProcessingFilter anonymousProcessingFilter exceptionTranslationFilter

   拦截器 filterSecurityInterceptor(其实它是过滤器 不过把它放在这里更能说明它的功能) methodSecurityInterceptor看着上面的用红色标出的过滤器是用来认证(表单和HTTP基本认证 当然还有别的不过这两个比较长用)它们是资源访问的入口 其它的过滤器是用来辅助的 HttpSessionContextIntegrationFilter是用来把认证信息记录到Session中的RememberMeProcessingFilter是以cookie的形式来保存认证信息的 anonymousProcessingFilter是在匿名的时候(这时候是没有认证信息的)给这个用户分配一个匿名的认证信息 exceptionTranslationFilter总结一下异常并处理 在实际中选择适合程序的即可

  上面只是资源访问的入口 真正保护资源的是这两个拦截器 filterSecurityInterceptor 拦截URL的类(它是个过滤器)

  metohdSecurityInterceptor 拦截类中方法的调用 它们为什么要拦截呢?就是想在访问或调用这些方法之前来判断一下用户是否有访问或调用的权限 有就通过 没有就踢出

  除此之外 Acegi专门做了两个管理器(实际上就是两个类 为什么会用做这两个管理器 因为认证和授权都有一些的操作 这就需要专门做两个管理器了) authenticationManager(class= acegisecurity providers ProviderManager) 授权管理器accessDecisionManager(class= acegisecurity vote AffirmativeBased)

  说白了一个用于认证用户 一个是用于权限的授于的先来说认证用户 认证管理器有什么东西呢?只内置了一些提供者 这些提供者呢又是什么呢 他们是提供用户的验证身份信息的 比如从数据库或配置文件里读出用户名和密码 在用户的cookie里读出身份信息(rememberMeProcessingFilter用到的[前面讲了的 有印象吧]) 或在Session里读出身份验证信息(HttpSessionContextIntegrationFilter起作用的) 这里我们只说一下从数据库或配置文件里读出用户名密码来装配验证信息的 其它的配置类似可以找一下对应api在Spring里配置即可 daoAuthenticationProvider是数据库的提供者class= acegisecurity providers dao DaoAuthenticationProvider 而它提供的服务呢又有几种 数据库和配置文件(这是Acegi的两个默认的实现)当然也可以自己实现(实现userDetailsService接口就行)

<bean id= authenticationManager class= acegisecurity providers ProviderManager >           <property name= providers >               <list>                   <ref local= daoAuthenticationProvider />               </list>           </property>       </bean>   <bean id= daoAuthenticationProvider class= acegisecurity providers dao DaoAuthenticationProvider >           <! <property name= userDetailsService ><ref local= InMemoryDaoImpl /></property> ><! 这里有两种选择 >           <property name= userDetailsService ><ref local= jdbcDaoImpl /></property>       </bean>

  如果用户名和密码在配置文件里可以用InMemoryDaoImpl class= acegisecurity userdetails memory InMemoryDaoImpl 在这个类的userMap里配置即可 javafish=java ROLE_USER 配置了一个用户名为javafish 密码为java 用户组为ROLE_USER的用户 不过最常用的还是数据库的JDBC实现(两个二选一) acegisecurity userdetails jdbc JdbcDaoImpl里面需要usersByUsernameQuery和authoritiesByUsernameQuery还有数据源dataSource(有人问为什么呢 userByUsernameQuery是用来通过用户名来查密码的 authoritiesByUsernameQuery是用来通过用户名来查权限的 查询数据库肯定的用数据源吧这个里是用的SpringFrameWork的DataSource)它们查询的sql语句是有讲究的 就是查密码的时候查三个第一个是username 第二个是password 第三个是是否可用 查权限的时候查两个 username和authorities(具体看例子)

cha138/Article/program/Java/ky/201311/28997

相关参考

知识大全 浅谈Acegi配置-Spring-Java[3]

浅谈Acegi配置-Spring-Java[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 浅谈Acegi配置-Spring-Java[6]

浅谈Acegi配置-Spring-Java[6]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 浅谈Acegi配置-Spring-Java[5]

浅谈Acegi配置-Spring-Java[5]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!im

知识大全 浅谈Acegi配置-Spring-Java[2]

浅谈Acegi配置-Spring-Java[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&l

知识大全 Acegi安全系统的配置

Acegi安全系统的配置  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &n

知识大全 浅谈优化SQLServer数据库服务器内存配置的策略

浅谈优化SQLServer数据库服务器内存配置的策略  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 JSF 与Acegi联合

JavaBean安全新手段:JSF与Acegi联合  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 浅谈Delphi开发经验[1]

浅谈Delphi开发经验[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Delphi是一个

浅谈玉米需肥特点

1、不同生长时期玉米对养分的需求特点每个生长时期玉米需要养分比例不同。玉米从出苗到拔节,吸收氮2.5%、有效磷1.12%、有效钾3%;从拔节到开花,吸收氮素51.15%、有效磷63.81%、有效钾97

浅谈玉米需肥特点

1、不同生长时期玉米对养分的需求特点每个生长时期玉米需要养分比例不同。玉米从出苗到拔节,吸收氮2.5%、有效磷1.12%、有效钾3%;从拔节到开花,吸收氮素51.15%、有效磷63.81%、有效钾97