Spring Security Oauth2 — Episódio 3.2

Carly Christian
2 min readJun 22, 2020

--

Continuando o episódio anterior, vamos falar do domínio jdbcTokenStore e dessas classes.

Você já pode até ter visto um schema de tabelas que precisa criar para o jdbcTokenStore mas pouco provavelmente te falaram onde você encontra essa informação, é isso que quero passar aqui.

No spring security oauth2 existe um pacote chamado provider, é ele que fornece as informações sobre o schema de tabelas que você precisa ter para trabalhar com jdbctoken. Existem pacotes internos onde cada um vai possuir uma class “JdbcXPTO” mapeando os objetos de banco e nelas você pode verificar os nomes dos campos e tipos alem dos nomes das tabelas que você precisa construir para que o spring security gerencie para você.

São eles:

package approval{
class JdbcApprovalStore{
tabela oauth_approvals
user_id String, client_id String, scope String, expires_at Date (Use TIMESTAMP pois é o tipo que é utilizado na persistência), status Enum(APROVED, DENIED), last_update_at Date (Use TIMESTAMP pois é o tipo que é utilizado na persistência)
}
}

package client{
class JdbcClientDetailsService{
tabela oauth_client_details
clientSecret String, client_id String, scope String, resource_ids Set<String>, authorized_grant_types Set<String>, redirect_uri Set<String>, autoapprove Set<String>, authorities List<GrantedAuthority> (adote VARCHAR(256),access_token_validity Integer, refresh_token_validity Integer ,additional_information(adote VARCHAR(4096))
}
}

package code {
class JdbcAuthorizationCodeServices{
tabela oauth_code
code Types.VARCHAR, authentication Types.BLOB -OBS: Na class, você pode verificar que a tipagem é explícita.
}
}

package token {
class JdbcTokenStore{
tabela oauth_access_token
token_id Types.VARCHAR, token Types.BLOB, authentication_id Types.VARCHAR, user_name Types.VARCHAR, client_id Types.VARCHAR, authentication Types.BLOB, refresh_token Types.VARCHAR — OBS: Na class, você pode verificar que a tipagem é explícita.
}

class JdbcTokenStore{
tabela oauth_refresh_token
token_id Types.VARCHAR, token Types.BLOB, authentication Types.BLOB — OBS: Na class, você pode verificar que a tipagem é explícita.
}

}

Detalhe importante:
Existe uma tabela que não está no package provider.
Ela está no package token que fica dentro do package client e você pode conhecer ela abaixo.

class JdbcClientTokenServices
tabela oauth_client_token
token_id Types.VARCHAR, token Types.BLOB, authentication_id Types.VARCHAR, user_name Types.VARCHAR, client_id Types.VARCHAR

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Carly Christian
Carly Christian

Written by Carly Christian

Oi, eu sou o carly. Gosto de falar sobre varios assuntos e visões que tenho sobre o mundo, é isto.

No responses yet

Write a response