避免在带有jetty-maven-plugin的org.eclipse.jetty.server.ssl.SslSocketConnector中使用已弃用的方法

时间:2012-01-11 09:25:48

标签: jetty maven-jetty-plugin

发布到

如何在不使用 needClientAuth keystore 等连接器中已弃用的方法/标签的情况下编写正确的Maven POM?

使用弃用方法的示例:

      <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <!-- see http://docs.codehaus.org/display/JETTY/Maven+Jetty+Plugin -->
        <version>8.0.4.v20111024</version>
        <!-- see http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.mortbay.jetty%22%20AND%20a%3A%22jetty-maven-plugin%22 -->
        <dependencies>
          <!--[...]-->
        </dependencies>
        <configuration>
          <webAppXml>src/main/resources/jetty-Login.xml</webAppXml>
          <scanIntervalSeconds>5</scanIntervalSeconds>
          <webAppConfig>
            <contextPath>/MyApp</contextPath>
          </webAppConfig>
          <connectors>
            <connector implementation="org.eclipse.jetty.server.bio.SocketConnector">
                <port>8080</port>
            </connector>
            <connector implementation="org.eclipse.jetty.server.ssl.SslSocketConnector">
                <port>8443</port>
                <password>changeit</password>
                <wantClientAuth>true</wantClientAuth><!-- deprecated! -->
                <needClientAuth>false</needClientAuth><!-- deprecated! -->
                <keystore>/my/path/to/java/keystore</keystore><!-- deprecated! -->
            </connector>
          </connectors>
        </configuration>
      </plugin>
    </plugins>

1 个答案:

答案 0 :(得分:1)

无法通过maven配置结构进行自定义Ssl配置。 这是因为在SslSocketConnector构造函数上引入了SslContextFactory要求,以加强服务器端的一些SSL安全问题。

当使用pom.xml中的结构时,Maven只能从默认构造函数构造对象。

您必须通过<jettyXml>元素桥接更改。 从分发中获取jetty-ssl.xml的副本并将其放入$ {project.basedir} /src/main/config/jetty-ssl.xml并使用以下配置块。

  <plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>${jetty-version}</version>
    <configuration>
      <scanIntervalSeconds>5</scanIntervalSeconds>
      <webAppConfig>
        <contextPath>/MyApp</contextPath>
      </webAppConfig>
      <jettyXml>src/main/config/jetty-ssl.xml</jettyXml>
      <connectors>
        <connector implementation="org.eclipse.jetty.server.bio.SocketConnector">
          <port>8080</port>
        </connector>
      </connectors>
    </configuration>
  </plugin>