我有一个使用Spring Boot的jhipster(4.14.5)整体应用程序,该应用程序在生产中与http v2一起运行,并使用证书强制ssl。应用程序服务器使用一个嵌入式的underwow容器,该容器是使用自动构建器(jhipster中的标准配置)创建的。
不幸的是,它不会自动将在浏览器中使用http的生产服务器上的用户转发到https。我尝试了许多解决此问题的方法,包括
security:
require-ssl: true
在application-prod.yml
中和
http.requiresChannel().anyRequest().requiresSecure()
and.portMapper().http(80).mapsTo(443)
在SecurityConfiguration中
和
underTowContainer.addBuilderCustomizers(builder -> builder.addHttpListener(80, hostAddress));
underTowContainer.addDeploymentInfoCustomizers(deploymentInfo -> {
deploymentInfo.addSecurityConstraint(new SecurityConstraint()
.addWebResourceCollection(new WebResourceCollection().addUrlPattern("/*"))
.setTransportGuaranteeType(TransportGuaranteeType.CONFIDENTIAL)
.setEmptyRoleSemantic(SecurityInfo.EmptyRoleSemantic.PERMIT))
.setConfidentialPortManager(exchange -> 443);
});
在WebConfigurer中
但是,到目前为止,还没有方法起作用。有什么想法可以尝试吗?
答案 0 :(得分:0)
您是否使用了诸如nginx之类的代理或诸如负载均衡器之类的代理? 我建议使用它进行https转发。
答案 1 :(得分:0)
下面的 WebFlux 代码对我有用。
Given url "http://myURL"
And param time = time
When method DELETE
Then status 200