Spring security zuul重定向问题背后的Spring MVC web app

Spring security zuul重定向问题背后的Spring MVC web app,spring-security,spring-boot,netflix-zuul,spring-cloud-netflix,Spring Security,Spring Boot,Netflix Zuul,Spring Cloud Netflix,我有一套SpringBoot(1.3.3),SpringCloud(Brixton.RC2)微服务在Zuul后面运行,我的URL在重定向中被重写时遇到问题 我的主要问题是,我的web应用程序在zuul之后,在重定向期间似乎不知道主机,即使我应该设置所有必要的属性 当我去,我希望被重定向到,但我得到重定向到。。。如果我直接转到,我可以看到我的登录表单和登录,但随后会被重定向到,但是如果我手动转到,我可以在表单中的帖子之后正确地再次使用我的应用程序,并执行重定向 以下是我的web应用程序的一些属性:

我有一套SpringBoot(1.3.3),SpringCloud(Brixton.RC2)微服务在Zuul后面运行,我的URL在重定向中被重写时遇到问题

我的主要问题是,我的web应用程序在zuul之后,在重定向期间似乎不知道主机,即使我应该设置所有必要的属性

当我去,我希望被重定向到,但我得到重定向到。。。如果我直接转到,我可以看到我的登录表单和登录,但随后会被重定向到,但是如果我手动转到,我可以在表单中的帖子之后正确地再次使用我的应用程序,并执行重定向

以下是我的web应用程序的一些属性:

server.use-forward-headers = true
server.tomcat.protocol-header = X-Forwarded-Proto
server.tomcat.remote-ip-header = X-Forwarded-For
@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
    //@formatter:off
    httpSecurity
        .formLogin()
            .successHandler(new SavedRequestAwareAuthenticationSuccessHandler())
            .loginPage("/login")    
                .permitAll()
            .failureUrl("/login-error")
            .defaultSuccessUrl("/")
            .and()
        .logout()
            .logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
                .logoutSuccessUrl("/logged-out")
                    .permitAll()
            .and()
            .anyRequest()
                .authenticated();
    //@formatter:on
}
以下是我的zuul财产:

#Server
server.port = 80
server.use-forward-headers = true 

#Zuul
zuul.add-proxy-headers = true
zuul.ignored-services = "*"

zuul.routes.api.service-id = api
zuul.routes.api.path = /api/**
zuul.routes.api.strip-prefix = true

zuul.routes.web.service-id = web
zuul.routes.web.path = /**
web应用中的我的安全设置:

server.use-forward-headers = true
server.tomcat.protocol-header = X-Forwarded-Proto
server.tomcat.remote-ip-header = X-Forwarded-For
@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
    //@formatter:off
    httpSecurity
        .formLogin()
            .successHandler(new SavedRequestAwareAuthenticationSuccessHandler())
            .loginPage("/login")    
                .permitAll()
            .failureUrl("/login-error")
            .defaultSuccessUrl("/")
            .and()
        .logout()
            .logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
                .logoutSuccessUrl("/logged-out")
                    .permitAll()
            .and()
            .anyRequest()
                .authenticated();
    //@formatter:on
}
同样,所有URL都正确使用服务器名,除非它是重定向。知道怎么解决吗


非常感谢

回复很晚,您可以尝试设置servlet路径。我有一个类似的问题,设置路径修复了它。@ccit spence将它设置为什么?谢谢