我正在一个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")
        }问题是,每次我重新启动应用程序时,它都会尝试将这些客户端添加到数据库中,这是我不想要的。我得到了唯一的约束冲突异常。如何将其配置为仅在客户端尚不存在时才添加客户端?
谢谢。
发布于 2017-01-08 15:55:35
原因:基本上,当应用程序启动时,它会将withClient()中的内容插入到oauth_client_details表中,所以请删除它,然后重新启动应用程序,它应该可以工作。
因为您已经运行了应用程序,所以它在oauth_client_details表中插入了行。
解决方案:只需将这一行作为您的方法。它将在该表中查找行。@Override     public void configure(ClientDetailsServiceConfigurer clients) throws Exception      {         clients.jdbc(dataSource);     }假设您第一次使用上面的代码行启动应用程序,那么我猜您可以直接向该表中添加条目,也可以通过应用程序添加条目。
我手动添加的目的是为了测试。
希望这对你有帮助。这对我很管用。
https://stackoverflow.com/questions/40154466
复制相似问题