2015-04-15 7 views
7

Ich fand ein Tutorial über Spring REST-Service OAuth auf https://github.com/royclarkson/spring-rest-service-oauthWie Spring Security OAuth 2.0-Client-Speicher-Datenbank

Aber ich frage mich, konfigurieren, wie Client-Datenbank gespeichert zu konfigurieren, so dass ich einfach verwalten. Im Tutorial-Client-Konfigurationsspeicher inMemory bei Klasse OAuth2ServerConfiguration.java

@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 
    } 

Antwort

6

@OhadR Dank für Ihre Antwort danken, appreciete es wirklich!

Ich fand acctually die Antwort durch diesen Thread: error in Spring AuthorizationServerConfigurerAdapter when assigning Jdbc datastore to ClientDetailsService

das ich brauche zwei Schritt nur zu tun:

  1. erstellen Tabelle, die clientdetails repräsentieren
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. definierte JDBC-Konfiguration
DataSource dataSource = DataSourceBuilder.create() 
    .driverClassName("com.mysql.jdbc.Driver") 
    .url("jdbc:mysql://localhost:3306/gsrestdb").username("***").password("***").build(); 

    clients.jdbc(dataSource); 
+1

Ich denke, dass Sie alle Tabellen erstellen müssen, die hier aufgelistet werden https://github.com/spring-projects/spring-security-oauth/blob/master/spring-security-oauth2/src/test/resources/schema.sql, außer die ClientDetails Tabelle – soulmachine

+0

@soulmachine: Ja, Sie haben Recht Ich muss Tabellenschema erstellen, danke für den Link tough. – prptn

+0

@prptn Wohin geht der 'DataSourceBuilder.create()' Code? In welcher Klasse und Methode? Und wie sagst du OAuth, die Datenbank zu benutzen? –