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:
- 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)
);
- 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);
Creo que esta es la respuesta que estás buscando:
Esta es la clase Spring-oAuth Impl para JDBC.
HTH