Um artigo leva você ao Endpoints no SpringBoot

Um, conheça o Endpoint

Spring Boot Actuator fornece alguns pontos de extremidade do atuador para monitorar e interagir com seu aplicativo. Por exemplo, quando um projeto falha, ele automaticamente alarma, monitora o conteúdo, o status operacional, etc., e dá um aviso antecipado.

API oficial de referência: clique para referência

Dois, exemplo simples

(1) Adicionar dependência

Insira a descrição da imagem aqui
(2) Exceto para a porta de desligamento que é fechada por padrão, outras portas estão abertas por padrão

Insira a descrição da imagem aqui
É preciso entender que isso não significa que a extremidade aberta exposta, a exposição não é necessariamente aberta, apenas o ponto final de exposição padrão infoehealth

Insira a descrição da imagem aqui
(3) Inicie o projeto para visualizar os endpoints expostos:

#默认是关闭的,可以手动开启
management.endpoint.shutdown.enabled=true
#如果不想全部开启,也可以关闭默认配置,手动开启自己需要的
#management.endpoints.enabled-by-default=false

Isso equivale a que todos os meus endpoints sejam ativados: você pode ver e expor dois endpoints healtheinfo

Insira a descrição da imagem aqui
Ver saúde:

Insira a descrição da imagem aqui
Ver informações:

Insira a descrição da imagem aqui
Você mesmo pode configurar a exposição do endpoint: você pode ver que o padrão é apenas saúde e informações

Insira a descrição da imagem aqui

#配置端点暴露,* 表示暴露所有端点
management.endpoints.web.exposure.include=*

Como você pode ver, todos os endpoints estão expostos neste momento:

Insira a descrição da imagem aqui
Neste momento, tente fazer uma solicitação POST e executar uma operação de desligamento:
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
porque não é seguro acessar o endpoint diretamente, você precisa adicionar uma segurança para proteger o endpoint

Três, introduza a segurança da mola para proteger os terminais

(1) Adicionar dependência de segurança

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

(2) Configurar Segurança

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    
    

    @Override
    protected void configure(HttpSecurity http) throws Exception {
    
    
        http.requestMatcher(EndpointRequest.toAnyEndpoint())
                .authorizeRequests()
                .anyRequest().hasRole("ADMIN")
                .and()
                .httpBasic();
    }
}

application.properties

#配置 security
spring.security.user.name=yolo
spring.security.user.password=123
spring.security.user.roles=ADMIN

(3) Inicie o projeto e acesse o teste. Se
o acesso direto for encontrado, ele reportará 401, e você precisa verificar o login antes de acessar:

Insira a descrição da imagem aqui
Acesso com sucesso:

Insira a descrição da imagem aqui
(4) Configuração de caminho
Visitas anteriores, não actuator, por exemplo, as visitas healthforam diretas:http://localhost:8080/health, Começando com SpringBoot2, há mais um no meio actuator.

Claro, se você visitar, você não quer o do meio actuator( isso geralmente não é recomendado):

#代替掉 actuator
management.endpoints.web.base-path=/yolo
#也可以自定义端点的名称
management.endpoints.web.path-mapping.health=yolo-health

Acesso com sucesso:

Insira a descrição da imagem aqui
(5) Suporte a vários domínios

#指定允许的域
management.endpoints.web.cors.allowed-origins=http://localhost:8081
#指定允许的方法
management.endpoints.web.cors.allowed-methods=GET,POST

Acho que você gosta

Origin blog.csdn.net/nanhuaibeian/article/details/109290199
Recomendado
Clasificación