我是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令牌。提前谢谢。
答案 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标记