tutorial mkyong example spring-security oauth-2.0 spring-security-oauth2

mkyong - spring-security-oauth2-client



Cómo configurar Spring Security OAuth 2.0 client store en la base de datos (2)

Encontré un tutorial sobre Spring REST Service OAuth en https://github.com/royclarkson/spring-rest-service-oauth

Pero me pregunto cómo configurar el cliente almacenado en la base de datos, para que pueda administrarlo fácilmente. En la configuración del cliente tutorial, almacene inMemory en la clase 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 }


@OhadR gracias por su respuesta, ¡realmente la aprecio!

De hecho, encontré la respuesta a través de este hilo: error en Spring AuthorizationServerConfigurerAdapter al asignar Jdbc datastore a ClientDetailsService

Para hacer esto solo necesito dos pasos:

  1. crear una tabla que represente los detalles del cliente

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. configuración JDBC definida

DataSource dataSource = DataSourceBuilder.create() .driverClassName("com.mysql.jdbc.Driver") .url("jdbc:mysql://localhost:3306/gsrestdb").username("***").password("***").build(); clients.jdbc(dataSource);