Segurança de primavera com Stormpath
1. Visão geral
Stormpath desenvolveu um suporte sólido para Spring Boot e Spring Security - para tornar a integração com sua infraestrutura e serviços bastante direta.
Neste artigo, vamos dar uma olhada ema minimalistic setup and integration of Stormpath with Spring Security.
2. Configurando Stormpath
Antes que possamos realmente integrar o Stormpath, precisamos criar um token de acesso na nuvem do Stormpath. Para isso, precisamossign up no site deles. Please remember that for development purpose we’ll need to sign up as a developer - o que nos dá 10.000 chamadas de API por mês de uso do modo livre.
Claro, se já temos uma conta Stormpath ativa, podemos usá-la e diretamentelogin.
Agora, precisamos criar as chaves de API; clicando no link“Manage API Keys” dentro deDevelopers Tools, veremos um botão chamado “*Create API Key*“.
Precisamos clicar neste botão para gerar a chave da API. Ao clicar em, seremos solicitados a baixar um arquivo de propriedades contendo os detalhes da chave API. O conteúdo ficará assim:
apiKey.id = xxxxxxxxxxx
apiKey.secret = xxxxxxxxxxxx
Precisamos armazenar esses detalhes com muito cuidado, pois esses dados não podem ser buscados novamente no servidor.
3. Construindo o aplicativo
3.1. Dependências do Maven
Para usar a API Stormpath, precisamos usar o Java SDK. Para isso, precisamos integrar a seguinte dependência empom.xml:
com.stormpath.spring
stormpath-default-spring-boot-starter
1.5.4
Você pode encontrar a versão mais recente destormpath-default-spring-boot-starter emCentral Maven Repository.
3.2. Configuração de segurança da primavera
Uma das vantagens de usar Stormpath é que não precisamos adicionar muito código clichê para configurar o Spring Security. O seguinte par de linhas de código é tudo o que precisamos para configurar completamente o aplicativo:
@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.apply(stormpath());
}
}
Ostormpath() é um método estático, que na verdade será suficiente para uma integração simples com Spring Security.
O que é ainda mais interessante aqui é que não precisamos criar nenhuma página HTML adicional para criar login, inscrição, etc. Stormpath irá gerar essas páginas; no entanto, dependendo da nossa necessidade, podemos criar páginas personalizadas e integrar as funcionalidades do Stormpath.
3.3. Application.properties
Estamos quase terminando de construir esse aplicativo básico. Precisamos apenas adicionar os detalhes das chaves de API, que criamos anteriormente no arquivoapplication.properties:
stormpath.client.apiKey.id = // your api id
stormpath.client.apiKey.secret = // your api secret
De acordo com as diretrizes do Stormpath, é sempre uma prática recomendada colocar dados confidenciais nas variáveis de ambiente JVM, em vez de usá-los emapplication.properties.
Podemos declará-los como parâmetros da JVM:
-Dstormpath.client.apiKey.id=[api_id] -Dstormpath.client.apiKey.secret=[api_secret]
Agora, estamos prontos para iniciar o aplicativo e ver os resultados. Podemos verificar os seguintes URLs para testar as funcionalidades do Stormpath:
-
/login - página de login
-
/register - página de registro
-
/forgot - página Esqueci a senha
3.4. Outras opções
Também existe uma opção interessante para verificar na página de login, o linkForgot Password na caixa de login. Ao clicar neste link, seremos redirecionados para a página/forgot, onde podemos fornecer nosso endereço de e-mail, que criamos para a inscrição. Isso acionará um email automático contendo o link para redefinir uma senha.
No entanto, precisamos fazer a seguinte configuração no Stormpath Admin Panel para configurar isso:
-
Clique no linkDirectories no topo da página. Ele deve mostrar todos os diretórios criados com esta conta. Por padrão, após a inscrição, Stormpath cria automaticamente um diretório chamadoStormpath Administrator. No entanto, se pode criar outros diretórios e usá-los.
-
No painel esquerdo, clique no linkWorkflows & Emails para ver uma opção de redefinição de senha. Por padrão, está desativado. Precisamos clicar no botãoEnabled para usá-lo.
-
NoLink Base URL, precisamos fornecer a URL de nosso aplicativo e essa URL será anexada ao e-mail de redefinição de senha.
4. Conclusão
Neste artigo rápido, aprendemos como integrar facilmente o Spring Security ao Stormpath.
Existem muitas outras configurações, como verificação de e-mail, etc., que podem ser configuradas por meio deStormpath Admin Console; usando isso, podemos construir um aplicativo seguro muito rapidamente.
E, como sempre, você pode encontrar o código-fonte completoon GitHub.