登录后的Zuul提交重定向到遗留原始URL

时间:2017-10-04 06:35:11

标签: spring-mvc spring-security netflix-zuul spring-cloud-netflix

我是zuul服务器的新手。我有一个遗留系统,我试图使用zuul代理服务器绞尽脑汁。我的zuul服务器在本地计算机上运行,​​我的具有spring security的传统spring MVC系统在专用物理tomcat服务器上运行(例如http://test-server.domain.com/legacySystem)。当我输入具有某个路径的本地代理服务器URL(例如http://localhost:8080/legacySystem)时,zuul透明地代理我遗留服务器,并且在浏览器地址栏中,我看到zuul服务器地址(不是原始服务器地址)。没关系。但是,在当前窗口中,我尝试登录并将数据发送到服务器zuul会将我重定向到原始服务器,然后在浏览器地址栏中看到http://test-server.domain.com/legacySystem/login;jsessionid=7152B389D11583056C702BEB0BA20232地址。登录后的服务器返回代码302.我的zuul config。

---
zuul:
  routes:
      legacySystem:
          path: /legacySystem/**
          url: https://test-server.domain.com/legacySystem/

server:
    port: 8080  

ribbon:
    eureka:
        enabled: false

有人可以帮我正确配置zuul服务器吗?关键是我不能改变遗留系统的配置和认证子系统。我想透明地将所有请求路由到遗留系统,稍后我将定义一些将用于访问微服务的路由。旧系统使用Spring安全性和简单的DAO身份验证提供程序。在此步骤中,我不需要zuul和遗留系统之间的任何会话或oAuth令牌。提前谢谢。

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。我通过将这个类添加到我的 Spring boot Gateway 项目中解决了这个问题 文档参考:https://cloud.spring.io/spring-cloud-netflix/1.4.x/multi/multi__router_and_filter_zuul.html#zuul-redirect-location-rewrite

    import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
    import org.springframework.cloud.netflix.zuul.filters.post.LocationRewriteFilter;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;

    @Configuration
    @EnableZuulProxy
    public class ZuulConfig {

        @Bean
        public LocationRewriteFilter locationRewriteFilter() {
            return new LocationRewriteFilter();
        }
    }

答案 1 :(得分:0)

我必须在application.yml文件中放入空的sensitiveHeaders标记