web-dev-qa-db-ja.com

SpringSecurityを構成する方法OAuth 2.0クライアントストアをデータベースに

Springに関するチュートリアルを見つけましたREST Service OAuth on https://github.com/royclarkson/spring-rest -service-oauth

しかし、データベースに保存されているクライアントをどのように構成すれば、簡単に管理できるのでしょうか。チュートリアルのクライアント構成では、クラスOAuth2ServerConfiguration.JavaでinMemoryを保存します

    @Override
    public void configure(ClientDetailsServiceConfigurer clients)
            throws Exception {
        // @formatter:off
        clients.inMemory().withClient("clientapp")
                .authorizedGrantTypes("password", "refresh_token")
                .authorities("USER").scopes("read", "write")
                .resourceIds(RESOURCE_ID).secret("123456");
        // @formatter:on
    }
8
prptn

私はこれがあなたが探している答えだと信じています:

https://github.com/spring-projects/spring-security-oauth/blob/master/spring-security-oauth2/src/main/Java/org/springframework/security/oauth2/provider/client/ JdbcClientDetailsS​​ervice.Java

これは、JDBC用のSpring-oAuthImplクラスです。

HTH

1
OhadR

@OhadRご回答ありがとうございます。本当に感謝しています!

私は実際にこのスレッドを通して答えを見つけました: JdbcデータストアをClientDetailsS​​erviceに割り当てるときのSpringAuthorizationServerConfigurerAdapterのエラー

これを行うには、2つのステップだけが必要です。

  1. clientdetailsを表すテーブルを作成します
   CREATE TABLE oauth_client_details (
      client_id VARCHAR(256) PRIMARY KEY,
      resource_ids VARCHAR(256),
      client_secret VARCHAR(256),
      scope VARCHAR(256),
      authorized_grant_types VARCHAR(256),
      web_server_redirect_uri VARCHAR(256),
      authorities VARCHAR(256),
      access_token_validity INTEGER,
      refresh_token_validity INTEGER,
      additional_information VARCHAR(4096),
      autoapprove VARCHAR(256)
    );
  1. 定義されたJDBC構成
DataSource dataSource = DataSourceBuilder.create()
    .driverClassName("com.mysql.jdbc.Driver")
    .url("jdbc:mysql://localhost:3306/gsrestdb").username("***").password("***").build();

    clients.jdbc(dataSource);
9
prptn