(通译)Spring Security-2.0.x参考文档“基本认证机制”

(翻译)Spring Security-2.0.x参考文档“基本认证机制”
基本认证机制
12.1. 概述

Spring Security提供一个BasicProcessingFilter,它可以处理HTTP头部中的基本认证证书。 它可以用来像对待普通用户代理一样(比如IE和Navigator)认证由Spring远程协议的调用(比如Hessian和Burlap)。 HTTP基本认证的执行标准定义在RFC 1945,11章,BasicProcessingFilter符合这个RFC。 基本认证是一个极具吸引力的认证方法,因为它在用户代理发布很广泛,实现也特别简单(只需要对username:password进行Base64编码,再放到HTTP头部里)。
12.2. 配置

要实现HTTP基本认证,要先在过滤器链里定义BasicProcessingFilter。 还要在application context里定义BasicProcessingFilter和协作的类:

        <bean id="basicProcessingFilter" class="org.springframework.security.ui.basicauth.BasicProcessingFilter">
        <property name="authenticationManager"><ref bean="authenticationManager"/></property>
        <property name="authenticationEntryPoint"><ref bean="authenticationEntryPoint"/></property>
        </bean>

        <bean id="authenticationEntryPoint"
        class="org.springframework.security.ui.basicauth.BasicProcessingFilterEntryPoint">
        <property name="realmName"><value>Name Of Your Realm</value></property>
        </bean>

   

配置好的AuthenticationManager会处理每个认证请求。 如果认证失败,配置好的AuthenticationEntryPoint会用来重试认证过程。 通常你会使用BasicProcessingFilterEntryPoint,它会返回一个401响应,使用对应的头部重试HTTP基本验证。 如果验证成功,就把得到的Authentication对象放到SecurityContextHolder里。

如果认证事件成功,或者因为HTTP头部没有包含支持的认证请求所以没有进行认证,过滤器链会像通常一样继续下去。 唯一打断过滤器的情况是在认证失败并调用AuthenticationEntryPoint的时候,向上面段落里讨论的那样。