【发布时间】:2012-12-18 10:18:09
【问题描述】:
类似于this 的问题,但没有得到回复。我希望有一个分步指南,说明我需要更改哪些文件以及我的 maven web-app 项目中的哪些内容,以确保与我的 webapp 的所有连接都是通过 ssl 进行的。我在搜索中找到了this,但它似乎写得不好,从 2006 年开始,不包括 maven。您能提供的任何帮助将不胜感激。
【问题讨论】:
类似于this 的问题,但没有得到回复。我希望有一个分步指南,说明我需要更改哪些文件以及我的 maven web-app 项目中的哪些内容,以确保与我的 webapp 的所有连接都是通过 ssl 进行的。我在搜索中找到了this,但它似乎写得不好,从 2006 年开始,不包括 maven。您能提供的任何帮助将不胜感激。
【问题讨论】:
您的第一个链接确实得到了答复;关于您的第二个链接,我没有看到任何写得不好或过时的东西;而 Maven 是一种构建技术,与运行时发生的事情无关,这由应用程序本身决定。如那篇文章所述,这完全取决于您在 web.xml 中添加的内容。
【讨论】:
我想问一个问题以澄清,但我的代表还不允许 - 所以我会尽力回答。大多数情况下,我不清楚您是要使用 Tomcat 服务器还是 Maven 插件提供的嵌入式 Tomcat 实例。
首先,我通常将 http 重定向到 https 的设置是使用带有 mod_rewrite 规则的 Apache Web 服务器。
话虽如此,如果我正确理解您要完成的工作,您想使用 Maven 动态配置您的 WEB-INF/web.xml 或任何其他适用于您的应用程序的上下文配置,作为build 配置 Tomcat 将 http 页面请求重定向到 https。 Here是Tomcat中将http请求重定向到https的示例
解决这个问题的方法是确保为您的 Tomcat 实例配置了 Maven settings.xml。例如:
<settings>
<servers>
<server>
<id>myserver</id>
<username>admin</username>
<password>admin</password>
</server>
</servers>
如果你想在 Maven-Tomcat 插件中使用嵌入式 Tomcat 服务器,你需要将 pom.xml 编辑成这样的:
<build>
<finalName>sw</finalName>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0</version>
<configuration>
<server>myserver</server>
<path>/sw</path>
</configuration>
</plugin>
</plugins>
然后,在 pom.xml 的 maven-tomcat-plugin 设置中,您可以按照上面的示例配置指南,根据 this 规范指定插件参数。我会指定像<contextFile>, <httpsPort>, <keystoreFile>, <keystorePass>, <tomcatWebXml>, and <warSourceDirectory>这样的参数
恐怕如果你想为现有的 Tomcat 服务器(不是嵌入的 Maven)动态配置 web.xml、context.xml 或 server.xml,你不应该使用 Maven 来执行此操作。相反,您应该提前编辑这些文件,然后相应地配置 tomcat:deploy 目标。
【讨论】: