AuthenticationProvider和AuthenticationEntryPoint之间的差异

dav*_*ooh 2 java spring spring-security

对不起,伙计们,也许是个愚蠢的问

但我需要在我的网络应用程序中实现一些额外的身份验证和授权逻辑,我不清楚在哪里AuthenticationProviderAuthenticationEntryPoint必须使用.

寻找一些例子,我常常发现AuthenticationEntryPointsecurity:http节中省略了一个.

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

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

gpe*_*che 9

简短回答:

  1. 实现AuthenticationProvider以将您的自定义身份验证方案集成到Spring Security中.
  2. 实现AccessDecisionVoter以将您的自定义授权方案集成到Spring Security中.您可能还需要AccessDecisionManager在某些特定情况下实现自定义,尽管捆绑的通常就足够了.

请注意,这些都不是特定于Web的,与此相反AuthenticationEntryPoint,它是Spring Security Web的一部分,而不是Spring Security Core.主要功能AuthenticationEntryPoint是允许框架从应用程序服务器向Web客户端发送某种"访问此资源,您必须首先进行身份验证"通知.大多数标准通知已在Spring Security Web中实现.例如:

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