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)