Já aprendemos alguns pontos de conhecimento no simples entendimento e uso do Spring Security acima . Spring Security
Neste artigo, aprendemos sobre suas classes principais.
SecurityContext
SecurityContext
Contém as informações detalhadas do usuário que está acessando o sistema atualmente nos dois métodos a seguir.
método | ilustrar |
---|---|
getAuthentication() |
Obtenha o principal autenticado atualmente ou o token de solicitação autenticado |
setAuthentication() |
Altere ou exclua as informações de autenticação principal atualmente verificadas |
SecurityContextHolder
SecurityContextHolder
Usado para salvar SecurityContext
. O getContext()
método mais comumente usado é usado para obter o arquivo SecurityContext
.
SecurityContextHolder
Uma série de métodos estáticos são definidos em , e a lógica interna desses métodos estáticos é realizada por SecurityContextHolder
holding , por exemplo .SecurityContextHolderStrategy
clearContext()
Gerente do Provedor
ProviderManager
Uma lista de autenticação será mantida para lidar com a autenticação de diferentes métodos de autenticação, porque pode haver vários métodos de autenticação no sistema, como número de celular, senha de usuário, método de e-mail, etc.
Durante a autenticação, se ProviderManager
o resultado da autenticação não for null
, significa que a autenticação foi bem-sucedida, nenhuma outra autenticação será realizada e será salva como resultado da autenticação SecurityContext
. Se malsucedido, uma mensagem de erro é lançada ProviderNotFoundException
.
DaoAuthenticationProvider
DaoAuthenticationProvider
É AuthenticationProvider
a implementação mais comumente usada, que é usada para obter o nome de usuário e a senha enviados pelo usuário e compará-los quanto à correção. Se correto, retorna as informações do usuário em um banco de dados.
Detalhes do usuario
UserDetail
É Spring Security
uma entidade de usuário, incluindo nome de usuário, senha, permissão e outras informações. Spring Security
Por padrão, a classe interna User
é implementada para Spring Security
autenticação de segurança. Claro, você também pode implementá-lo sozinho.
UserDetails
Os seguintes métodos são fornecidos:
String getPassword()
: Retorna a senha do usuário autenticado. Se não puder ser retornada, será exibida comonull
String getUsername()
: retorna o nome de usuário autenticado, se não puder ser retornado, será exibido comonull
boolean isAccountNonExpired()
: A conta expirou? Se expirar, não pode ser verificadaboolean isAccountNonLocked()
: Especifica se o usuário está bloqueado ou desbloqueado, usuários bloqueados não podem ser autenticadosboolean isCredentialsNonExpired()
: Especifica se as credenciais do usuário (senha) expiraram e as credenciais expiradas não podem ser autenticadas.boolean isEnabled()
: Se estiver desabilitado, os usuários desabilitados não podem ser autenticados.
UserDetailsServiço
As informações relacionadas ao usuário UserDetailsService
são carregadas por meio da interface. O único método desta interface é loadUserByUsername(String username)
usado para carregar informações relacionadas com base no nome de usuário. O valor de retorno é UserDetails
uma interface, que contém as informações do usuário: nome de usuário, senha, permissão, se está habilitado, se está bloqueado, se expira, etc.
Autoridade concedida
GrantedAuthority
Um método é definido em getAuthority()
. Este método retorna uma string que representa a string correspondente à permissão. Retorna se a permissão correspondente não puder ser representada por uma string null
.
GrantedAuthority
A interface UserDetailsService
é carregada por e depois atribuída UserDetails
.
Filtro
Filter
O usuário processa Web
a solicitação e realiza a verificação de segurança. Filter
Realize algumas ações antes e depois da requisição, como autenticação, autorização, registro, etc. Ele intercepta HTTP
as solicitações recebidas e as processa de acordo com as regras de segurança definidas.
Filter
Existem CsrfFilter
, UsernamePasswordAuthenticationFilter
, e LogoutFilter
assim por diante.
referência
- "Escola Prática Bota Primavera"