我正在尝试使用Sping Boot 创建一个OAuth2授权,它只支持客户端凭据流。据我所知,该流是客户端直接访问 /oauth/token
端点。
是否有办法在Sping Boot 中禁用 /oauth/authorize
端点,并允许直接访问 /oauth/token
,而无需首先获得完全授权?
@Configuration
@EnableAuthorizationServer
public class OAuth2Configuration extends AuthorizationServerConfigurerAdapter {
@Autowired
private AuthenticationManager authenticationManager;
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
// TODO: Is there something I can do here to disable /oauth/authorize?
endpoints.authenticationManager(authenticationManager);
}
@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
// client details configuration
}
}
1条答案
按热度按时间yshpjwxd1#
我不能说禁用授权端点,但你是对的,你可以直接进入令牌端点与客户端凭据流。我可能重申一些你已经知道,但“客户端”的凭据(客户端ID/客户端密码)与“用户”得凭据不同(用户名/密码)。“用户”前往授权端点,以便客户端随后可以从令牌端点获取令牌。“客户端”(在客户端凭据流中)直接向令牌终结点提供客户端凭据。是否需要禁用授权终结点?
因此,对于client_credentials流,您不需要首先进行authorize(您不需要禁用它)。如果您的Sping Boot 授权服务器在
localhost:8080
上,您将如何 curl 令牌:其中,
d2VhcHA6
是“客户端ID:客户端秘密”的base64编码