gpt4 book ai didi

java - Spring Oauth2 JDBC客户端配置多次添加相同的客户端

转载 作者:行者123 更新时间:2023-11-30 07:05:48 24 4
gpt4 key购买 nike

我正在 Spring 项目中配置 OAuth2 授权服务器。这是配置。

 @Override
public void configure(ClientDetailsServiceConfigurer clients)
throws Exception {
clients.jdbc(dataSource)
.withClient("user")
.secret("secret")
.scopes("read", "write")
.autoApprove(true)
.authorizedGrantTypes(
"password","authorization_code", "refresh_token")
}

问题是,每次我重新启动应用程序时,它都会尝试将这些客户端添加到数据库中,这是我不想要的。我收到了唯一约束违规异常。如何将其配置为仅在客户端尚不存在时添加客户端?

谢谢。

最佳答案

请找到我的答案,它不会出现任何错误:https://stackoverflow.com/a/57460575/9963016

找到下面的代码

@覆盖 公共(public)无效配置(ClientDetailsS​​erviceConfigurer配置器)抛出异常{

    JdbcClientDetailsService jdbcClientDetailsService = new JdbcClientDetailsService(dataSource);

if(!jdbcClientDetailsService.listClientDetails().isEmpty() ) {
jdbcClientDetailsService.removeClientDetails(CLIEN_ID);
}

if(jdbcClientDetailsService.listClientDetails().isEmpty() ) {
configurer.jdbc(dataSource).withClient(CLIEN_ID).secret(encoder.encode(CLIENT_SECRET))
.authorizedGrantTypes(GRANT_TYPE_PASSWORD, AUTHORIZATION_CODE, REFRESH_TOKEN, IMPLICIT)
.scopes(SCOPE_READ, SCOPE_WRITE, TRUST).accessTokenValiditySeconds(ACCESS_TOKEN_VALIDITY_SECONDS)
.refreshTokenValiditySeconds(FREFRESH_TOKEN_VALIDITY_SECONDS).and().build();
}
configurer.jdbc(dataSource).build().loadClientByClientId(CLIEN_ID);
}

关于java - Spring Oauth2 JDBC客户端配置多次添加相同的客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40154466/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com