sql >> データベース >  >> RDS >> Mysql

SpringでJDBCforClientDetailsS​​erviceConfigurerを使用してクライアントを追加するにはどうすればよいですか?

    この手順を休ませてください:

    1. サーバーを起動するとSpringBootによって検出されるように、このschema.sqlをリソースフォルダー内に配置します。スプリングブートを使用しない場合でも、このスクリプトをMysql App Client(phpmyadmin、HeidiSQL、Navicat ..)からインポートするだけで済みます。

      drop table if exists oauth_client_details; create table oauth_client_details ( client_id VARCHAR(255) PRIMARY KEY, resource_ids VARCHAR(255), client_secret VARCHAR(255), scope VARCHAR(255), authorized_grant_types VARCHAR(255), web_server_redirect_uri VARCHAR(255), authorities VARCHAR(255), access_token_validity INTEGER, refresh_token_validity INTEGER, additional_information VARCHAR(4096), autoapprove VARCHAR(255) ); drop table if exists oauth_client_token; create table oauth_client_token ( token_id VARCHAR(255), token LONG VARBINARY, authentication_id VARCHAR(255) PRIMARY KEY, user_name VARCHAR(255), client_id VARCHAR(255) ); drop table if exists oauth_access_token; create table oauth_access_token ( token_id VARCHAR(255), token LONG VARBINARY, authentication_id VARCHAR(255) PRIMARY KEY, user_name VARCHAR(255), client_id VARCHAR(255), authentication LONG VARBINARY, refresh_token VARCHAR(255) ); drop table if exists oauth_refresh_token; create table oauth_refresh_token ( token_id VARCHAR(255), token LONG VARBINARY, authentication LONG VARBINARY ); drop table if exists oauth_code; create table oauth_code ( code VARCHAR(255), authentication LONG VARBINARY ); drop table if exists oauth_approvals; create table oauth_approvals ( userId VARCHAR(255), clientId VARCHAR(255), scope VARCHAR(255), status VARCHAR(10), expiresAt TIMESTAMP, lastModifiedAt TIMESTAMP ); drop table if exists ClientDetails; create table ClientDetails ( appId VARCHAR(255) PRIMARY KEY, resourceIds VARCHAR(255), appSecret VARCHAR(255), scope VARCHAR(255), grantTypes VARCHAR(255), redirectUrl VARCHAR(255), authorities VARCHAR(255), access_token_validity INTEGER, refresh_token_validity INTEGER, additionalInformation VARCHAR(4096), autoApproveScopes VARCHAR(255) );
    2. OthorizationServer内にDataSource、authenticationManager、UserDetailsS​​erviceを挿入します

      @Autowired private MyUserDetailsService userDetailsService; @Inject private AuthenticationManager authenticationManager; @Autowired private DataSource dataSource;
    3. この2つのBeanを作成する必要があります

      @Bean public JdbcTokenStore tokenStore() { return new JdbcTokenStore(dataSource); } @Bean protected AuthorizationCodeServices authorizationCodeServices() { return new JdbcAuthorizationCodeServices(dataSource); }

      そして、AuthorizationServerクラスの上にある@Configurationを忘れないでください

    4. mysqlデータベースに作成されるクライアントアプリを構成します。clients.jdbc(dataSource).withClient("clientapp") .authorizedGrantTypes("password", "refresh_token") .authorities("USER") .scopes("read", "write") .resourceIds(RESOURCE_ID) .secret("123456");

      すでにこれを行っています。

    5. 最も重要なこと(そしてあなたはそれを忘れたと思います..)は次のとおりです:AuthorizationServerEndpointsConfigurerでエンドポイントを構成する:

      endpoints.userDetailsService(userDetailsService) .authorizationCodeServices(authorizationCodeServices()).authenticationManager(this.authenticationManager).tokenStore(tokenStore()).approvalStoreDisabled();

    そしてそれは男です、今それはうまくいくはずです;)

    さらにお気軽にお問い合わせください...喜んでお手伝いさせていただきます

    ツイーターからメッセージを送りました!



    1. データベースの最適化:インデックス

    2. SQLServerのデフォルトの制約とは-SQLServer/TSQLチュートリアルパート90

    3. 最新バージョンのSQLServerにアップグレードするための完璧なストーム

    4. MySQLはグループの最新レコードを取得します