我正在 bluemix 中为 REST API 运行一个 spring-boot 应用程序。 目前,API 调用在 http 和 https 中均有效。 如何禁用 http?你怎么看?
最佳答案
在spring-boot的application.properties文件中添加如下两行
server.tomcat.internal-proxies=.*
server.use-forward-headers=true
添加如下spring配置bean
@Configuration
public class SecurityConfiguration {
@Bean
public EmbeddedServletContainerFactory tomcatEmbeddedServletContainerFactory() {
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
@Override
protected void postProcessContext(Context context) {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint);
}
};
return tomcat;
}
}
由于 HTTPS 已在 bluemix 中实现,如果我们可以将 http 调用路由到 https 就足够了。但无论如何,我很想知道是否有人知道要覆盖它并强制执行他们自己的安全证书?
关于http - 为 bluemix api 调用禁用 HTTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45589126/