发布到
如何在不使用 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>
答案 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>