Spring Boot Security
Spring Security é apenas um grupo de filtros de servlet, que ajudam você a adicionar autenticação e autorização ao seu aplicativo da web.
Terminologia
- Autenticação refere-se ao processo de verificação da identidade de um usuário, com base nas credenciais fornecidas. Um exemplo comum é inserir um nome de usuário e uma senha ao fazer login em um site. Você pode pensar nisso como uma resposta à pergunta: "Quem é você?" ;
- Autorização refere-se ao processo de determinar se um usuário tem permissão adequada para executar uma ação específica ou ler dados específicos, supondo que o usuário seja autenticado com êxito. Você pode pensar nisso como uma resposta à pergunta: "Um usuário pode fazer / ler isso?" ;
- Princípio refere-se ao usuário autenticado no momento;
- Autoridade concedida refere-se à permissão do usuário autenticado.
- Função refere-se a um grupo de permissões do usuário autenticado.
Habilitando Segurança
Em um projeto Spring Boot Web você precisa somente incluir a dependência no pom.xml:
Verifique a versão do Spring Boot considerando se seu projeto se econtra na versão 2.x.x ou 3.x.x
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
Cria uma classe confirme arquivo abaixo
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class WelcomeController {
@GetMapping
public String welcome(){
return "Welcome to My Spring Boot Web API";
}
}
Acesse sua aplicação através do link: http://localhost:8080/, automaticamente o Spring Security irá te redirecionar para uma página de Login: http://localhost:8080/login.
Default (Padrão)
O Spring Security, possui um usuário padrão chamado user e toda vez que sua aplicação é iniciada ele gera uma senha aleatória no console.
Using generated security password: 6950aa31-b730-4731-bf6a-82eac7fb78be
Autenticação Simples
O Spring possui algumas configurações para definir os usuários na sua camada de segurança.
Como sabemos por padrão o Spring Security habilita um usuário de nome user e gera uma senha aleatoriamente a cada inicialização. Para aplicações em produção esta não é uma abordagem um tanto aconselhável, e é por isso que vamos conhecer algumas outras configurações de segurança.
No application.properties
O Spring Security verifica se existe alguma configuração de segurança no arquivo application.properites.
spring.security.user.name=user
spring.security.user.password=user123
spring.security.user.roles=USERS
Como houveram mudanças significativas da versão 2x para a 3x do Spring Boot, dividimos este tutorial de acordo com a sua versão selecionada