如何在spring cloud gateway
中重定向http
调用https
。我已经在我的网关项目中配置了https,如本文所述。
现在HTTPS URL工作正常,但除此之外,我需要将所有http
调用重定向到HTTPS
。我试过这个
但这对我不起作用,因为我没有使用默认的http
端口8080,而且我的应用程序正在spring security上运行。
下面的代码显示了如何将http
重定向到https
,但我需要对Netty
服务器进行相同的配置,因为spring cloud gateway
只支持Netty。。
@Configuration
public class RedirectToHttpsConfig {
@Value("${server.port}")
private Integer httpsPort;
@Value("${server.http.port}")
private Integer httpPort;
/* ################ THIS WILL WORK FINE ################
################ IF YOU HAVE TOMCAT ################
################ AS EMBEDDED SERVER ################
*/
@Bean
public TomcatServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
protected void postProcessContext(Context context) {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("*//*");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint);
}
};
tomcat.addAdditionalTomcatConnectors(initiateHttpConnector());
return tomcat;
}
private Connector initiateHttpConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(httpPort);
connector.setSecure(false);
connector.setRedirectPort(httpsPort);
return connector;
}
/* ################ -------- ################ */
/* ################ HOW TO DO THE ABOVE Configuration
FOR NETTY SERVER ################ */
@Bean
public NettyReactiveWebServerFactory nettyReactiveWebServerFactory(){
NettyReactiveWebServerFactory netty = nettyReactiveWebServerFactory(){
NettyServerCustomizer nettyServerCustomizer = new NettyServerCustomizer() {
@Override
public void customize(HttpServerOptions.Builder builder) {
**// NOT ABLE TO FIGURE OUT HERE**
}
}
};
}
}
最好的方法是在网关前面放一个apache,并在上面有一个重写规则。以这种方式运行它有很多好处。它还可以让你有一个最终用户可以访问的静态网址,如果你有问题或改变了apache背后的底层技术,你可以把它指向新的服务/网址或其他任何东西。在Apache上这样做还可以让你运行像mod安全这样的东西。最终它可能只是一个直通(为你的超文本传输协议提供一个重写规则-
问题内容: 我已经设置了TLS,它可以工作。我知道如何在nginx中从http重写为https,但是我不再使用nginx。我不知道如何在Go中正确执行此操作。 我将如何以一种好的方式做到这一点? 问题答案: 创建一个处理程序,以处理重定向到https的操作,例如: 然后重定向http流量:
我们使用拉维5。要将http连接重定向到https,请使用中间件HttpsProtocol。 在我们的4个测试用例中,只有1个正确工作(最后一个重定向)。其他3种情况的中间件添加了url extra index.php。 http://www.aqualink.az/index.php ---
我想问一下HTTP到HTTPS的重定向。正如我们所知,重定向是通过从web服务器端重定向来实现的。但是,当涉及到https重定向时,它可以通过两种方式完成,服务器端()和应用程序端()。我想知道: 以下哪种方法有效且性能更好。 考虑到同一服务器上的多个域和域,每种方法的优缺点 非常感谢。 参考: 将Laravel中的WWW重定向到非WWW-堆栈溢出
我正在使用spring boot(1.2.3)和嵌入式Undertow。出于安全原因,我更愿意将任何http请求重定向到https,但我找不到这样做的示例。 下面是spring boot和Tomcat的一个示例:spring Boot-embeded Tomcat HTTP到HTTPS重定向
我有一个正在运行的tomcat应用程序,它已经具有以下从HTTP到HTTPs的重定向规则: 是否可以添加一个例外/规则,将特定的http request(http://www . example . com)重定向到另一个特定的地址,并指定一个端口(比如https://www . example . com:8443/test),而不更改/删除上述连接器?
问题内容: 我如何在Spring Webflux中配置http-> https重定向?我需要将所有请求重定向到(据我所知,任何请求都应具有http状态响应,并带有更改http-> https)。在文档中未找到有关此信息的任何信息。我找到了这个答案,但它与tomcat有关。我有净值。 问题答案: 我找到了方法,希望对您有所帮助: