2014-02-11 105 views
3

我遵循Spring Boot安裝,可以很容易地讓Tomcat運行SSL,但是我想使用Jetty,並且這裏沒有任何文檔。我可以訪問JettyEmbeddedServletContainerFactory,但它不使用相同的接口方法來訪問配置。Spring jet with jetty 9 and ssl

有沒有人有任何運氣配置jetty 9內部春季啓動使用SSL?我發現了一個類似的問題here,並想知道是否有人解決了這個問題。

任何幫助將是偉大的。

回答

0

您是否使用maven作爲構建系統?如果是這樣,你可以檢查這個pom.xml神器 - http://bghints.blogspot.com/2012/03/client-authentication-with-ssl_28.html

博客文章是針對碼頭6.對於碼頭9,有一個區別。組ID必須更改:

org.mortbay.jetty

org.eclipse.jetty

我希望這可以幫助你。

+0

感謝您的信息,我試過,但它不是我的Spring MVC容器的完全集成解決方案。我正在尋找一種使用Spring Boot的更加集成的方法。看來Spring Boot沒有添加'JettyServerCustomizer'。它看起來像是最近的一次提交。我有一些工作,我會稍微發佈我的代碼和參考。 – websusk

4

因此,最近有一個問題通過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); 
     } 
    }; 
}