带有 jetty 9 和 ssl 的弹簧靴
Posted
技术标签:
【中文标题】带有 jetty 9 和 ssl 的弹簧靴【英文标题】:Spring boot with jetty 9 and ssl 【发布时间】:2014-03-09 14:18:18 【问题描述】:我遵循了 Spring Boot 设置,并且可以轻松地让 Tomcat 使用 SSL 运行,但是我想使用 Jetty,并且那里几乎没有文档。我可以访问JettyEmbeddedServletContainerFactory
,但它不使用相同的接口方法来访问配置。
有没有人在 Spring Boot 中配置 jetty 9 以使用 SSL?我发现了一个类似的问题here 并想知道是否有人解决了这个问题。
任何帮助都会很棒。
【问题讨论】:
【参考方案1】:您是否使用 maven 作为构建系统?如果是这样,您可以检查这个 pom.xml 工件 - http://bghints.blogspot.com/2012/03/client-authentication-with-ssl_28.html
这篇博文是针对 6 号码头的。对于 9 号码头,情况有所不同。组 ID 必须更改为:
org.mortbay.jetty
到
org.eclipse.jetty
希望对你有帮助。
【讨论】:
感谢您的信息,我试过了,但它不是与我的 Spring MVC 容器完全集成的解决方案。我一直在寻找一种使用 Spring Boot 的更集成的方法。似乎 Spring Boot 没有添加JettyServerCustomizer
。看起来这是最近的一次提交。我有一些工作,我会稍后发布我的代码和参考。【参考方案2】:
所以最近有一个问题通过 GitHub 发布到 Spring Boot(我在这里问的当天或之前,很好的时机),要求支持同样的问题。他们有一个这种工作的例子,以及一个在他们将/已经做出新提交后如何工作的例子。我正在使用前者,它工作正常。看起来您可以获取最新源或等待另一个版本/里程碑。
Here 是讨论的链接。
这是我的解决方案,但正如他们在回答中所说的那样。我没有取消他们的提交,所以我使用第一个解决方案和基本的 Jetty API。本示例使用 Jetty 8 和 Spring Boot,但 Jetty 9 也可以。
@Bean
public EmbeddedServletContainerFactory embeddedServletContainerFactory() throws Exception
return new JettyEmbeddedServletContainerFactory()
@Override
protected JettyEmbeddedServletContainer getJettyEmbeddedServletContainer(
Server server)
SslContextFactory sslContextFactory = new SslContextFactory();
sslContextFactory.setKeyStorePath("/usr/local/keystore");
sslContextFactory.setKeyStorePassword("password");
sslContextFactory.setCertAlias("alias");
SslSocketConnector sslConnector = new SslSocketConnector(sslContextFactory);
sslConnector.setPort(8443);
server.setConnectors(new Connector[] sslConnector );
return super.getJettyEmbeddedServletContainer(server);
;
【讨论】:
以上是关于带有 jetty 9 和 ssl 的弹簧靴的主要内容,如果未能解决你的问题,请参考以下文章