sql >> Databáze >  >> RDS >> Mysql

Jak přidat klienta pomocí JDBC pro ClientDetailsServiceConfigurer na jaře?

Postupujte podle těchto kroků:

  1. vložte toto schema.sql do složky zdrojů, aby je SpringBoot zjistil, jakmile spustíte server. Pokud nepoužíváte jarní spouštění, nebojte se, jednoduše importujte tento skript z libovolného klienta aplikace Mysql (phpmyadmin, HeidiSQL, Navicat..)

    přehoďte tabulku, pokud existuje oauth_client_details;vytvořit tabulku oauth_client_details (client_id VARCHAR(255) PRIMARY KEY,resource_ids VARCHAR(255),client_secret VARCHAR(255),scope VARCHAR_grant_VARCHAR5direct),VARCH_authorized VARCHAR_55),webserver_type ,orgány VARCHAR(255),platnost_přístupového_tokenu INTEGER,obnovit_platnost_tokenu INTEGER,další_informace VARCHAR(4096),autoschválit VARCHAR(255));vypustit tabulku, pokud existuje oauth_client_token;vytvořit tabulku AR25id_token5_klient (autor25token NGAR2500_klientů) ) PRIMÁRNÍ KLÍČ,uživatelské_jméno VARCHAR(255),id_klienta VARCHAR(255));zrušte tabulku, pokud existuje oauth_access_token;vytvořte tabulku oauth_access_token (id_tokenu VARCHAR(255),token LONG VARBINARY,KEY,VAR5) PRINCIP_5 název_autentizace(255) ,id_klienta VARCHAR(255),autentizace LONG VARBINARY,refresh_token VARCHAR(255));zrušte tabulku, pokud existuje oauth_refresh_token;vytvořte tabulku oauth_refresh_token (id_tokenu VARCHAR(255),token LONG,BINARY, LONG ověření LONG VARBINARY);vypustit tabulku, pokud existuje oauth_code;vytvořit tabulku oauth_code (kód VARCHAR(255), autentizace LONG VARBINARY);zrušit tabulku, pokud existuje oauth_approvals;vytvořit tabulku oauth_approvals (VARCHARId VARCHAR5),clientscope(255AR5AR5) (255),stav VARCHAR(10),platnost vypršíAt TIMESTAMP,lastModifiedAt TIMESTAMP);zrušit tabulku, pokud existuje ClientDetails;vytvořit tabulku ClientDetails (appId VARCHAR(255) PRIMÁRNÍ KLÍČ,resourceIds VARCHAR(255),appSecret VARCHAR(25CH5VARCHAR) 255),grantTypes VARCHAR(255),redirectUrl VARCHAR(255),autority VARCHAR(255),access_token_validity INTEGER,refresh_token_validity INTEGER,additionalInformation VARCHAR(4096),autoApproveScopes 5VARCH);
  2. Vložte svůj DataSource, authenticationManager, UserDetailsService do vašeho OthorizationServer

    @Autowiredprivate MyUserDetailsService userDetailsService;@Injectprivate AuthenticationManager authenticationManager;@Autowiredprivate DataSource dataSource;
  3. Budete muset vytvořit tyto dvě fazole

    @Beanpublic JdbcTokenStore tokenStore() {return new JdbcTokenStore(dataSource);}@Beanprotected AuthorizationCodeServices authorizationCodeServices() {return new JdbcAuthorizationCodeServices(dataSource);}

    a nezapomeňte prosím na @Configuration nad vaší třídou AuthorizationServer

  4. Nakonfigurujte své klientské aplikace tak, aby byly vytvořeny ve vaší databázi mysql:clients.jdbc(dataSource).withClient("clientapp").authorizedGrantTypes("password", "refresh_token").authorities("USER"). scopes("read", "write").resourceIds(RESOURCE_ID).secret("123456");

    už jste to udělali.

  5. nejdůležitější věc (a myslím, že jste na to zapomněli ..) je:nakonfigurovat vaše koncové body pomocí AuthorizationServerEndpointsConfigurer:

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

a je to, člověče, teď by to mělo fungovat;)

A klidně se ptejte na další... Rád pomůžu

Poslal jsem vám zprávu z tweeteru!



  1. Jaký je správný formát DateTime pro databázi MySQL?

  2. Jak změnit cizí klíč tabulky MySQL pomocí příkazového řádku

  3. MySQL ORDER BY rand(), název ASC

  4. Západka DBCC_OBJECT_METADATA