Classes básicas do Spring Security

Já aprendemos alguns pontos de conhecimento no simples entendimento e uso do Spring Security acima . Spring SecurityNeste artigo, aprendemos sobre suas classes principais.

SecurityContext

SecurityContextConté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

SecurityContextHolderUsado para salvar SecurityContext. O getContext()método mais comumente usado é usado para obter o arquivo SecurityContext.

SecurityContextHolderUma série de métodos estáticos são definidos em , e a lógica interna desses métodos estáticos é realizada por SecurityContextHolderholding , por exemplo .SecurityContextHolderStrategyclearContext()

Gerente do Provedor

ProviderManagerUma 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 ProviderManagero 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É AuthenticationProvidera 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 Securityuma entidade de usuário, incluindo nome de usuário, senha, permissão e outras informações. Spring SecurityPor padrão, a classe interna Useré implementada para Spring Securityautenticação de segurança. Claro, você também pode implementá-lo sozinho.

UserDetailsOs 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 verificada
  • boolean isAccountNonLocked(): Especifica se o usuário está bloqueado ou desbloqueado, usuários bloqueados não podem ser autenticados
  • boolean 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 UserDetailsServicesã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 é UserDetailsuma 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

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

GrantedAuthorityA interface UserDetailsServiceé carregada por e depois atribuída UserDetails.

Filtro

FilterO usuário processa Weba solicitação e realiza a verificação de segurança. FilterRealize algumas ações antes e depois da requisição, como autenticação, autorização, registro, etc. Ele intercepta HTTPas solicitações recebidas e as processa de acordo com as regras de segurança definidas.

FilterExistem CsrfFilter, UsernamePasswordAuthenticationFilter, e LogoutFilterassim por diante.

pexels-the-cactusena-17497006.jpg

referência

  • "Escola Prática Bota Primavera"

Guess you like

Origin juejin.im/post/7262297715911409701