AuthenticationProvider和AuthenticationEntryPoint之间的差异

时间:2014-12-23 10:09:35

标签: java spring spring-security

对不起,伙计们,这可能是一个愚蠢的问题。

但我需要在我的网络应用中实施一些额外的身份验证和授权逻辑,而且我还不清楚必须使用AuthenticationProviderAuthenticationEntryPoint的位置。

在某些示例中,我发现AuthenticationEntryPoint部分中省略了security:http

但是在某些情况下,AuthenticationProvider也被省略(框架提供了一个默认实例?),只需要UserDetailsService实现。

请你澄清一些基本概念吗?

1 个答案:

答案 0 :(得分:8)

简短回答:

  1. 实施AuthenticationProvider,以便将自定义身份验证方案集成到Spring Security中。
  2. 实施AccessDecisionVoter,以便将自定义授权方案集成到Spring Security中。您可能还需要在某些特定情况下实现自定义AccessDecisionManager,尽管捆绑的通常就足够了。
  3. 请注意,与AuthenticationEntryPoint不同,这两者都不是特定于Web的,这是Spring Security Web 的一部分,而不是Spring Security Core。 AuthenticationEntryPoint的主要功能是允许框架从应用程序服务器向Web客户端发送某种“访问此资源,您必须首先进行身份验证”通知。大多数标准通知已在Spring Security Web中实现。例如:

    如您所见,除非您所要求的行为过于具体,否则您不需要提供自己的AuthenticationEntryPoint实施。