Spring Web Security 中 AuthenticationEntryPoint 的用途是什么?

sam*_*ers 23 spring spring-security servlet-filters spring-boot

Spring Web Security 中AuthenticationEntryPoint的用途是什么?该文档没有提供太多细节。什么时候应该使用它,它与 Spring Security 过滤器链有什么关系。

tks*_*con 19

它是一个由 ExceptionTranslationFilter 实现的接口,基本上是一个过滤器,是 Spring Security 的第一个入口点。它是检查用户是否经过身份验证并登录或引发异常(未经授权)的入口点。通常该类可以像在简单应用程序中那样使用,但是当在 REST、JWT 等中使用 Spring Security 时,必须扩展它以提供更好的 Spring Security 过滤器链管理。

  • 它是 Spring security 过滤器链中的倒数第二个。这已经在这里进行了广泛的讨论。[Stackoverflow链接](/sf/ask/2903607171/) (2认同)

小智 12

根据文档:

AuthenticationEntryPoint 用于发送请求客户端凭据的 HTTP 响应。

有时,客户端会主动包含用户名/密码等凭据来请求资源。在这些情况下,Spring Security 不需要提供从客户端请求凭据的 HTTP 响应,因为它们已经包含在内。

在其他情况下,客户端将向他们无权访问的资源发出未经身份验证的请求。在本例中,AuthenticationEntryPoint 的实现用于从客户端请求凭据。AuthenticationEntryPoint 实现可能会执行到登录页面的重定向,使用 WWW-Authenticate 标头进行响应等。

AuthenticationEntryPoint 在 Spring Web Security 中用于配置应用程序,以便在未经身份验证的客户端尝试访问私有资源时执行某些操作。