嗨,我正在尝试在Spring Boot
Web服务中同时使用http和https协议。我正在关注本教程:https : //drissamri.be/blog/java/enable-https-in-spring-
boot/
HTTPS Post方法有效,但http无效。我通过SoapUI对其进行测试,并抛出异常HTTP status 405 - Method not allowed
。
这是请求/响应html" target="_blank">方法在代码中的外观:
private static final String NAMESPACE_URI = "http://....";
@PayloadRoot(namespace = NAMESPACE_URI, localPart = "getRequest")
@ResponsePayload
public GetResponse getRequest(@RequestPayload GetRequest request){...}
我应该附上任何代码段吗?
谢谢你的帮助。
摆弄了多个教程后,答案是遵循官方指南…
http://docs.spring.io/spring-boot/docs/current-
SNAPSHOT/reference/htmlsingle/#howto-enable-multiple-connectors-in-
tomcat
更新:
import org.apache.catalina.connector.Connector;
import org.apache.coyote.http11.Http11NioProtocol;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.io.File;
@Configuration
public class HttpsConnector {
@Value("${cert.keyStore}")
private String keyStorePath;
@Value("${cert.trustStore}")
private String trustStorePath;
@Value("${cert.keyStorePass}")
private String keyStorePass;
@Value("${cert.trustStorePass}")
private String trustStorePass;
@Value("${cert.keyStoreType}")
private String keyStoreType;
@Value("${cert.trustStoreType}")
private String trustStoreType;
@Value("${cert.keyAlias}")
private String keyAlias;
@Value("${cert.httpsPort}")
private int httpsPort;
@Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
tomcat.addAdditionalTomcatConnectors(createSslConnector());
return tomcat;
}
private Connector createSslConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
String absKeyStorePath = getAbsolutePath(keyStorePath);
String absTrustStorePath = getAbsolutePath(trustStorePath);
connector.setScheme("https");
connector.setSecure(true);
connector.setPort(httpsPort);
protocol.setSSLEnabled(true);
protocol.setKeystoreType(keyStoreType);
protocol.setKeystoreFile(absKeyStorePath);
protocol.setKeystorePass(keyStorePass);
protocol.setTruststoreType(trustStoreType);
protocol.setTruststoreFile(absTrustStorePath);
protocol.setTruststorePass(trustStorePass);
protocol.setKeyAlias(keyAlias);
return connector;
}
private String getAbsolutePath(String path) {
File file = new File(path);
if (!file.isAbsolute()) {
path = file.getAbsolutePath();
}
return path;
}
}
组态:
#SERVER CONFIG
server.port=8090
#Certificate
cert.keyStore=src/main/resources/keystore.p12
cert.trustStore=src/main/resources/keystore.p12
cert.keyStorePass=...
cert.trustStorePass=...
cert.keyStoreType=pkcs12
cert.trustStoreType=pkcs12
cert.keyAlias=...
cert.httpsPort=8443
问题内容: 当我使用下面的代码时(以下),我得到了错误…引起故障的行(显然)是 编辑:我按照建议添加了,但这并没有改变错误。 编辑:EditObject servlet看起来像这样 另一个编辑:所以基本上我不能做我正在做的事情。我需要的是,用户提交一个发布请求,然后将他/她转回到使用Get方法而不是Post的servlet。如何在不出现错误的情况下进行此引荐?提前致谢。 问题答案: (很抱歉,我之
问题内容: 我如何在Spring Webflux中配置http-> https重定向?我需要将所有请求重定向到(据我所知,任何请求都应具有http状态响应,并带有更改http-> https)。在文档中未找到有关此信息的任何信息。我找到了这个答案,但它与tomcat有关。我有净值。 问题答案: 我找到了方法,希望对您有所帮助:
如何在spring WebFlux中配置HTTP->HTTPS重定向?我需要将所有请求重定向到(根据我的理解,任何请求都应该具有http状态响应,并更改HTTP->HTTPS)。在文档中没有找到任何关于它的信息。我找到了这个答案,但它与Tomcat有关。我有奈蒂。
问题内容: 我收到此错误: 我正在尝试做的是创建一个带有下拉框的表单,该表单会根据在另一个下拉框中选择的其他值进行填充。例如,当我在框中选择一个名称时,应运行.jsp页面中的函数,然后提交提交的页面,然后在框中再次加载相应的值。 但是我收到此HTTP状态405错误。我在互联网上搜索了解决方案,但找不到任何有帮助的方法。这是我的代码的相关部分: jsp页面的一部分 控制器的一部分: 我怎么会得到这个
我收到这个错误:< code>HTTP状态405 -不支持请求方法“POST ” 我想做的是创建一个带有下拉框的表单,该下拉框根据在另一个下拉框中选择的其他值进行填充。例如,当我在框中选择一个名称时,应该运行. jsp页面中的函数,然后提交的页面再次加载框中的相应值。 但是我收到此HTTP状态405错误。我已经在互联网上搜索了解决方案,但找不到任何有帮助的东西。以下是我的代码的相关部分: jsp页
我有Spring MVC的Spring Security。当我尝试注册时,它给了我405个不支持的“帖子”。我已在安全配置中禁用csrf令牌。让我知道我哪里出错了? 我的登录页面: 授权由LoginController处理: 这是我的Spring Security配置类: