Jaw*_*mad 5 spring spring-security spring-boot spring-security-oauth2
我最近开始合并Spring 授权服务器,将 2.1 OAUTH 实施到我们的项目中。我已按照提供的示例设置授权服务器。还密切关注 spring 授权服务器文档。
我想检查从授权服务器生成的代码,因此尝试使用 Postman 进行测试。当我请求令牌时,它确实会提示我登录,并且在提供登录信息后,它会转到错误页面,而不是重定向回 Postman 应用程序。控制台上也没有错误,从控制台来看,身份验证似乎已成功。
// @formatter:off
@Bean
public RegisteredClientRepository registeredClientRepository(JdbcTemplate jdbcTemplate) {
RegisteredClient registeredClient = RegisteredClient.withId(UUID.randomUUID().toString())
.clientId("client")
.clientSecret("secret")
.clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_BASIC)
.authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE)
.authorizationGrantType(AuthorizationGrantType.REFRESH_TOKEN)
.authorizationGrantType(AuthorizationGrantType.CLIENT_CREDENTIALS)
.redirectUri("http://127.0.0.1:8080/login/oauth2/code/messaging-client-oidc")
.redirectUri("http://127.0.0.1:8080/authorized")
.redirectUri("https://oauth.pstmn.io/callback")
.scope(OidcScopes.OPENID)
.scope("message.read")
.scope("message.write")
.clientSettings(ClientSettings.builder().requireAuthorizationConsent(true).build())
.build();
// Save registered client in db as if in-memory
return new InMemoryRegisteredClientRepository(registeredClient);
}
Run Code Online (Sandbox Code Playgroud)
我不知道,网上也几乎没有关于这里发生的事情的帮助。所有配置的完成方式与官方示例中提供的配置类似,但无论出于何种原因,它都不会重定向并提供授权令牌。
控制台日志:
// @formatter:off
@Bean
public RegisteredClientRepository registeredClientRepository(JdbcTemplate jdbcTemplate) {
RegisteredClient registeredClient = RegisteredClient.withId(UUID.randomUUID().toString())
.clientId("client")
.clientSecret("secret")
.clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_BASIC)
.authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE)
.authorizationGrantType(AuthorizationGrantType.REFRESH_TOKEN)
.authorizationGrantType(AuthorizationGrantType.CLIENT_CREDENTIALS)
.redirectUri("http://127.0.0.1:8080/login/oauth2/code/messaging-client-oidc")
.redirectUri("http://127.0.0.1:8080/authorized")
.redirectUri("https://oauth.pstmn.io/callback")
.scope(OidcScopes.OPENID)
.scope("message.read")
.scope("message.write")
.clientSettings(ClientSettings.builder().requireAuthorizationConsent(true).build())
.build();
// Save registered client in db as if in-memory
return new InMemoryRegisteredClientRepository(registeredClient);
}
Run Code Online (Sandbox Code Playgroud)
从配置中删除了 ClientSettings,现在它可以工作了。对我来说,新版本似乎是一个错误。但无论出于何种原因,删除它后它仍然可以工作。
.clientSettings(ClientSettings.builder().requireAuthorizationConsent(true).build())
| 归档时间: |
|
| 查看次数: |
3114 次 |
| 最近记录: |