2015-04-23 2 views
2

JDBC Я пытаюсь добавить поддержку oauth2 моей Java службы отдыха,мигрирует весной OAuth дб от InMemory к

я сведущий, чтобы заставить его работать в памяти:

protected static class MyAuthorizationServerConfigurerAdapter extends 
      AuthorizationServerConfigurerAdapter { 
... 
    @Override 
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception { 
     clients 
      .inMemory() 
       .withClient("myapp") 
        .authorizedGrantTypes("password", "refresh_token") 
        .authorities("USER") 
        .scopes("read", "write") 
        .resourceIds(RESOURCE_ID) 
        .secret("mysecret"); 
     } 
... 
    } 

проблема, каждый время перезапуска сервера db теряется. , поэтому я хотел бы подключить его и существующий автономный SQL db, любую идею или руководство, как это можно сделать?

я обнаружил, что существует JDBC вариант, но я не могу найти способ, чтобы заставить его работать

clients.jdbc(dataSource) 

Спасибо

ответ

3

Вы уверены, что вы хотите поместить конфигурацию клиента в базе данных ? Это позволит вам настраивать новые клиенты динамически.

Я думаю, что вы хотите, чтобы ваши токены были сохранены в базе данных, поэтому, если вы перезагрузите сервер, клиент не потеряет свою сессию.

Это можно сделать с помощью следующего кода:

@Override 
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception } 
    endpoints.tokenStore(new JdbcTokenStore(dataSource)).userApprovalHandler(userApprovalHandler) 
        .authenticationManager(authenticationManager); 
} 

Вот код для создания таблиц базы данных:

CREATE TABLE `oauth_access_token` (
    `token_id` varchar(255) DEFAULT NULL, 
    `token` blob, 
    `authentication_id` varchar(255) DEFAULT NULL, 
    `user_name` varchar(255) DEFAULT NULL, 
    `client_id` varchar(255) DEFAULT NULL, 
    `authentication` blob, 
    `refresh_token` varchar(255) DEFAULT NULL 
); 

CREATE TABLE `oauth_refresh_token` (
    `token_id` varchar(256) DEFAULT NULL, 
    `token` blob, 
    `authentication` blob 
); 

Источник: https://github.com/spring-projects/spring-security-oauth/blob/master/spring-security-oauth2/src/test/resources/schema.sql

+0

я хотел бы поставить маркер в дБ, но это будет следующий шаг, поставив обе они будут лучше – user3394220

Смежные вопросы