Saltar al contenido

Spring Cloud Gateway Use el predicado para verificar la autorización del encabezado

Recabamos en distintos espacios para así traerte la solución a tu dilema, en caso de alguna duda déjanos la duda y te contestamos sin falta.

Solución:

Descubrió la sintaxis, solo se enrutará al servicio si se cumplen ambas condiciones

cloud:
gateway:
  routes:
    - id: serviceRoute
      uri: http://service:8000
      predicates:
        - Path=/service/
        - Header=Authorization, Basic password
      filters:
        - name: CircuitBreaker
          args:
            name: slow
            fallbackUri: forward:/fallback/service

La siguiente es mi muestra basada en la muestra de la puerta de enlace de primavera. Si no hay autorización de encabezado, acceda a http: // localhost: 20000 /, el código de respuesta es 404. Si agrega autorización, el código de respuesta es 405, lo que significa que el acceso es correcto. Cambie la ruta según sus necesidades.

definición de clase principal

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.security.config.web.server.ServerHttpSecurity;
import org.springframework.security.core.userdetails.MapReactiveUserDetailsService;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.web.server.SecurityWebFilterChain;

@SpringBootApplication
public class DemogatewayApplication 

    @Bean
    SecurityWebFilterChain springWebFilterChain(ServerHttpSecurity http) throws Exception 
        return http.httpBasic().and()
                .csrf().disable()
                .authorizeExchange()
                .pathMatchers("/anything/**").authenticated()
                .anyExchange().permitAll()
                .and()
                .build();
    

    @Bean
    public MapReactiveUserDetailsService reactiveUserDetailsService() 
        UserDetails user = User.withDefaultPasswordEncoder().username("user").password("password").roles("USER").build();
        return new MapReactiveUserDetailsService(user);
    

    public static void main(String[] args) 
        SpringApplication.run(DemogatewayApplication.class, args);
    


pom.xml



    4.0.0

    com.example
    spring-cloud-gateway-sample
    0.0.1-SNAPSHOT
    jar

    spring-cloud-gateway-sample
    Demo project for Spring Cloud Gateway

    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.2.RELEASE
         
    

    
        UTF-8
        UTF-8
        1.8
        Finchley.RC2
    

    
        
            org.springframework.boot
            spring-boot-starter-actuator
        
        
            org.springframework.cloud
            spring-cloud-starter
        
        
            org.springframework.boot
            spring-boot-starter-webflux
        
        
            org.springframework.cloud
            spring-cloud-starter-gateway
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-hystrix
        
        
            org.springframework.boot
            spring-boot-starter-data-redis
        
        
            org.springframework.boot
            spring-boot-starter-security
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            io.projectreactor
            reactor-test
            test
        
    

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                $spring-cloud.version
                pom
                import
            
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

definición application.yml


server:
  port: 20000

spring:
  cloud:
    gateway:
      routes:
      - id: serviceRoute
        uri: http://www.sohu.com
        predicates:
        - Path=/
        - Header=Authorization, Bearer [0-9a-zA-Z-.]*

Nos puedes añadir valor a nuestro contenido informacional contribuyendo tu experiencia en las aclaraciones.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 4)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *