1 Spring Security
Spring Security, que é uma estrutura de segurança baseada em filtros Spring AOP e Servlet. Ele fornece uma solução de segurança abrangente e lida com a verificação de identidade e autorização no nível de solicitação da Web e nível de chamada de método.
Seu design é baseado em uma ampla gama de dependências dentro da estrutura e pode ser dividido nas seguintes seções.
(1) Segurança Web / Http: Esta é a parte mais complicada. O mecanismo de autenticação da estrutura é realizado estabelecendo filtros e beans de serviço relacionados. Ao acessar um URL protegido, o usuário será apresentado à interface de login ou a uma interface de prompt de erro.
(2) Segurança de objetos de negócios ou métodos: para controlar os direitos de acesso ao método.
(3) AuthenticationManager: Processar solicitações de autenticação de outras partes da estrutura.
(4) AccessDecisionManager: Fornece decisão de acesso para Web ou segurança de método. Um padrão será registrado, mas também podemos usar um AccessDecisionManager personalizado por meio do registro de bean comum.
(5) AuthenticationProvider: AuthenticationManager autentica usuários por meio dele.
(6) UserDetailsService: está intimamente relacionado ao AuthenticationProvider e é usado para obter informações do usuário.
2 Adicionar dependência Maven
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Spring Security-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
3 SecurityConfig
Execute a interceptação de solicitação.
package com.config;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
httpSecurity
// 过滤请求
.authorizeRequests()
//允许匿名访问
.antMatchers("/test/help").anonymous()
// 除上面外的所有请求全部需要鉴权认证
.anyRequest().authenticated();
}
}
4 Criar URL de solicitação
TestController.java :
package com.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/test")
public class TestController {
@GetMapping("/help")
public String help(){
return "hello,Help!";
}
@GetMapping("/login")
public String login(){
return "hello,login!";
}
}
5 resultados de depuração
O URL que pode ser solicitado exibirá diretamente o resultado.
Para URLs que não podem ser solicitados, 403 será exibido, o que significa que eles não têm permissão para acessar.