Já discutimos Como configurar uma autenticação OAuth 2.0 e como criar um armazenamento de token personalizado. No último artigo desta série, você aprenderá a implementar um registro de cliente dinâmico personalizado usando segurança de primavera-oauth2. Eu recomendo que você leia Parte 1 e Parte 2 primeiro, pois vamos continuar de onde paramos.

Vamos começar criando a entidade responsável por armazenar os dados do cliente:

Aqui está o respectivo repositório:

 

Agora, podemos implementar o ClientDetailsService da classe de segurança do Spring:

 

Observe que estou usando o BaseClientDetails em vez de implementar a classe ClientDetails interface. Essa parece ser a melhor opção, pois até mesmo a implementação padrão do JDBC a utiliza.

Por fim, precisamos alterar nosso AuthorizationServerConfig para usar nosso CouchbaseClientDetailsService:

Esta é a aparência da classe inteira:

 

Agora você pode simplesmente inserir um novo cliente em seu banco de dados e usar essas credenciais para autenticar via OAuth:

 

TL;DR - O truque é implementar o org.springframework.security.oauth2.provider.ClientDetailsService e passá-la como um parâmetro para sua interface ClientDetailsServiceConfigurer:

 

Se você tiver alguma dúvida, envie-me um tweet para @deniswsrosa

Autor

Postado por Denis Rosa, defensor dos desenvolvedores, Couchbase

Denis Rosa é um Developer Advocate do Couchbase e mora em Munique, na Alemanha. Ele tem uma sólida experiência como engenheiro de software e fala fluentemente Java, Python, Scala e Javascript. Denis gosta de escrever sobre pesquisa, Big Data, IA, microsserviços e tudo o mais que possa ajudar os desenvolvedores a criar um aplicativo bonito, mais rápido, estável e escalável.

Deixar uma resposta