首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

《Spring Security3》第六章第四部分翻译(错误处理)(转载)

2012-08-14 
《Spring Security3》第六章第四部分翻译(异常处理)(转载)理解和配置异常处理?我们能够看到ExceptionTransla

《Spring Security3》第六章第四部分翻译(异常处理)(转载)
理解和配置异常处理


?我们能够看到ExceptionTranslationFilter处理如下的场景:

        异常类型

        谁抛出以及原因

        AuthenticationException

        AuthenticationProvider,当提供的凭证不合法或用户失效、过期;

        DaoAuthenticationProvider,当访问DAO数据存储时出错;

        RememberMeServices,当remember me cookie被篡改;

        各种特定的认证类(CAS、NTLM等)在用户特定的场景下。

        AccessDeniedException

        AccessDecisionManager,当配置的Voter投票拒绝访问——注意这可能在任何投票场景下

        ???????? 要记住的是,我们前面提到的ExceptionTranslationFilter是区分这两种类型异常的关键点,因为这关系到应用用户的请求和响应流程。

        【注意过滤器链中在ExceptionTranslationFilter之前的那些过滤器。ExceptionTranslationFilter只会处理和响应过滤器链中在此之后的过滤器所抛出的异常。用户可能会感到迷惑,尤其是将自定义过滤器进行了不正确排序的时候,不明白为什么期望的行为与应用实际的异常处理不一致——在很多场景下,过滤器的顺序是原因所在。】

        ???????? 尽管内置的处理流程在大多数情况下是可预测且满足需要的,但有时候你会需要自定义异常处理,尤其是在引入基类异常的自定义子类时,这需要过滤器链的特殊处理。

        AuthenticationEntryPoint的重要性

        ???????? AuthenticationEntryPoint(在ExceptionTranslationFilter我们看到它是工作流程中的一个辅助类)在处理未认证用户请求中很重要。当ExceptionTranslationFilter确定用户需要认证时,它请求AuthenticationEntryPoint以了解下一步要做什么。在基于form的认证中,o.s.s.web.authentication.LoginUrlAuthenticationEntryPoint负责将用户定向到登录form。

        ???????? 我们将会在后面的章节中看到AuthenticationEntryPoint被用在各种认证机制中,从而实现更个性化的行为——例如,在中心认证服务(CAS)单点登录中,AuthenticationEntryPoint要确保用户被定向到CAS门户进行认证。

        ???????? 在很多环境下,当实现SpringSecurity与第三方认证系统(独立于web应用)集成时,你需要实现自己的AuthenticationEntryPoint。

热点排行