为什么/ oauth/authorize应该得到保护?

Adr*_*ano 7 spring-security spring-boot spring-security-oauth2

根据http://projects.spring.io/spring-security-oauth/docs/oauth2.html:

注意,应使用Spring Security保护授权端点/ oauth/authorize(或其映射的替代方案),以便只有经过身份验证的用户才能访问它.

这是为什么?如果需要授权授权来交换授权代码的端点应该得到保护,这听起来是不对的.它就像登录页面的登录页面,特别是当授权授权将通过资源所有者密码凭据时.

Ran*_*niz 2

oAuth2 授权分两步进行:

  1. 用户使用其凭据进行身份验证
  2. 用户授予应用程序 X 使用其数据的权限

步骤 2 发生在/oauth/authorize上,步骤 1 发生在应用程序的其他地方(很可能通过 Spring Security 支持的表单登录)。

如果您不保护/oauth/authorize,您最终将在不验证用户身份的情况下授予授权(或者您不会这样做,因为如果没有经过身份验证的会话,您可能不知道用户是谁)。