Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да добавите клиент с помощта на JDBC за ClientDetailsServiceConfigurer през Spring?

Моля, следвайте тези стъпки:

  1. поставете този schema.sql във вашата папка с ресурси, за да бъде открит от SpringBoot, след като стартирате сървъра си. Ако не използвате пружинно зареждане, не се притеснявайте, просто импортирайте този скрипт от всеки Mysql App Client (phpmyadmin, HeidiSQL, Navicat..)

    преместете таблицата, ако съществува oauth_client_details;създайте таблица oauth_client_details (client_id VARCHAR(255) PRIMARY KEY,resource_ids VARCHAR(255),client_secret VARCHAR(255),scope VARCHAR(horuttype VARCHAR2555),scope VARCHAR(horsservized2555) ,власти VARCHAR(255),access_token_validity INTEGER,refresh_token_validity INTEGER,допълнителна_информация VARCHAR(4096),автоматично одобряване VARCHAR(255));преустановяване на таблицата, ако съществува oauth_client_token; ) PRIMARY KEY,user_name VARCHAR(255),client_id VARCHAR(255));премахнете таблицата, ако съществува oauth_access_token;създайте таблица oauth_access_token (token_id VARCHAR(255),token LONG VARBINARY,authentication_25 идентификатор на потребителя KVARCHARMA(25) ,client_id VARCHAR(255), удостоверяване LONG VARBINARY,refresh_token VARCHAR(255));прекратете таблицата, ако съществува oauth_refresh_token;създайте таблица oauth_refresh_token (token_id VARCHAR(255),VARBINARY LO, удостоверяване LONG VARBINARY); махнете таблицата, ако съществува oauth_code; създайте таблица oauth_code (код VARCHAR(255), удостоверяване LONG VARBINARY); махнете таблицата, ако съществува oauth_approvals; създайте таблица oauth_approvals (userId VARCHAR(255), VARCHARcARId25), (255),състояние VARCHAR(10),expiresAt TIMESTAMP,lastModifiedAt TIMESTAMP);прекратете таблицата, ако съществува ClientDetails;създайте таблица ClientDetails (appId VARCHAR(255) PRIMARY KEY,resourceIds VARCHAR(255),appSecret(25 VARCHAR5),appSecret(25 VAR5) 255),grantTypes VARCHAR(255),redirectUrl VARCHAR(255),органи VARCHAR(255),access_token_validity INTEGER,refresh_token_validity INTEGER,допълнителна информация VARCHAR(4096),autoApproveARcode(5)
  2. Инжектирайте своя DataSource, authenticationManager,UserDetailsService във вашия OthorizationServer

    @Autowiredprivate MyUserDetailsService userDetailsService;@Injectprivate AuthenticationManager authenticationManager;@Autowiredprivate DataSource dataSource;
  3. Ще трябва да създадете тези два боба

    @Beanpublic JdbcTokenStore tokenStore() {връщане на нов JdbcTokenStore(dataSource);}@Beanprotected AuthorizationCodeServices authorizationCodeServices() {връщане на нов JdbcAuthorizationCodeServices(dataSource);}

    и моля, не забравяйте за @Configuration отгоре на вашия клас AuthorizationServer

  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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL за Visual Studio 2012/2013

  2. SQL / MySQL - Подреждане по дължина на колоната

  3. MySQL:подреждане по вътре в групата по

  4. Как да се отървете от СТРОГИЯ SQL режим в MySQL

  5. Първичният ключ автоматично ли се индексира в MySQL?