Zuul - > Eureka Server,基本身份验证问题

Kum*_*mar 6 spring-boot spring-cloud netflix-eureka netflix-zuul

如果流程不包含基本授权,我可以点击该服务.

如果我使用基本授权,它会抛出"消息":"访问此资源需要完全身份验证"

以下是我的观察:

在ZuulFilter中,运行()方法,我得到request.getHeader("Authorization") - > Basic c29tOnNvbzz ==的值

但是一旦它到达Micro服务,我的价值就是'null',request.getHeader("Authorization") - > null

使用Spring Boot版本:1.4.0.RELEASE

This is my flow:
------------------

Zuul -> Service Discovery (Eureka Server) -> Service
Run Code Online (Sandbox Code Playgroud)

请帮忙,不确定Authorization标头消失的位置.

Eureka Server yml file:
-------------------------
server.port:4001
eureka.instance.hostname=localhost
eureka.client.fetch-registry:false
eureka.client.register-with-eureka:false
eureka.client.serviceUrl.defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
eureka.client.healthcheck.enabled=true

Zuul yml file:
-----------------
server:
  port: 8765
info:
  component: Edge Server
eureka:
  instance:
    leaseRenewalIntervalInSeconds: 3
    metadataMap:
      instanceId: ${spring.application.name}:${random.value}
  client:
    # Default values comes from org.springframework.cloud.netflix.eurek.EurekaClientConfigBean
    registryFetchIntervalSeconds: 5
    instanceInfoReplicationIntervalSeconds: 5
    initialInstanceInfoReplicationIntervalSeconds: 5

endpoints:
  restart:
    enabled: true
  shutdown:
    enabled: true
  health:
    sensitive: false

zuul.sensitive-headers: Cookie,Set-Cookie,Authorization

logging:
  level:
    ROOT: WARN
    se.callista: INFO

    # Get info regarding connection to the cofig server and retries if required
    org.springframework.cloud.config.client.ConfigServicePropertySourceLocator: INFO
    org.springframework.retry.support.RetryTemplate: DEBUG

    # Set INFO to see the allocated port
    org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer: INFO
---
eureka:
  instance:
    preferIpAddress: true
  client:
    serviceUrl:
      defaultZone: http://localhost:4001/eureka,http://localhost:4002/eureka
Run Code Online (Sandbox Code Playgroud)

Jef*_*eff 8

默认情况下,授权是敏感标头,这意味着Zuul不会转发它们.如果将其从敏感标题中删除,Zuul将转发标题.

zuul.sensitiveHeaders: Cookie,Set-Cookie
Run Code Online (Sandbox Code Playgroud)

它也应该是camelCase而不是连字符.

额外信息:https://github.com/spring-cloud/spring-cloud-netflix/blob/master/docs/src/main/asciidoc/spring-cloud-netflix.adoc#cookies-and-sensitive-headers