Segurança de primavera com Stormpath

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 linkManage 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.