Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menambahkan klien menggunakan JDBC untuk ClientDetailsServiceConfigurer di Musim Semi?

Ikuti langkah-langkah ini:

  1. letakkan schema.sql ini di dalam folder sumber daya Anda untuk dideteksi oleh SpringBoot setelah Anda memulai server Anda. Jika Anda tidak menggunakan boot musim semi jangan khawatir, impor saja skrip ini dari Klien Aplikasi Mysql (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. Suntikkan DataSource Anda, authenticationManager,UserDetailsService di dalam OthorizationServer Anda

    @Autowired private MyUserDetailsService userDetailsService; @Inject private AuthenticationManager authenticationManager; @Autowired private DataSource dataSource;
  3. Anda harus membuat dua kacang ini

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

    dan jangan lupa tentang @Configuration di atas kelas AuthorizationServer Anda

  4. Konfigurasikan aplikasi klien Anda untuk dibuat di database mysql Anda:clients.jdbc(dataSource).withClient("clientapp") .authorizedGrantTypes("password", "refresh_token") .authorities("USER") .scopes("read", "write") .resourceIds(RESOURCE_ID) .secret("123456");

    Anda sudah melakukannya.

  5. hal yang paling penting (dan saya pikir Anda lupa tentang itu ..) adalah:untuk mengkonfigurasi titik akhir Anda dengan AuthorizationServerEndpointsConfigurer:

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

dan itu saja, sekarang seharusnya berhasil;)

Dan jangan ragu untuk meminta lebih banyak... Saya akan dengan senang hati membantu

Saya telah mengirimi Anda pesan dari tweeter!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MariaDB – MySQL – Tampilkan Mesin untuk Menampilkan Semua Mesin yang Tersedia dan Didukung

  2. Apakah InnoDB (MySQL 5.5.8) pilihan yang tepat untuk multi-miliar baris?

  3. Pengaturan tabel lintang dan bujur MySQL

  4. Mesin penyimpanan untuk meja tidak mendukung perbaikan. InnoDB atau MyISAM?

  5. Pemeriksaan Kesehatan Penting untuk Server Replika Sumber MySQL Anda