Java条件配置(web.xml)-开发/生产
我在Spring应用程序的Java条件配置(web.xml)-开发/生产,java,spring,jakarta-ee,web.xml,production-environment,Java,Spring,Jakarta Ee,Web.xml,Production Environment,我在Spring应用程序的web.xml文件中有以下配置: <session-config> <cookie-config> <name>mycookie</name> <http-only>true</http-only> <secure>true</secure> </cookie-config> </session
web.xml
文件中有以下配置:
<session-config>
<cookie-config>
<name>mycookie</name>
<http-only>true</http-only>
<secure>true</secure>
</cookie-config>
</session-config>
麦考基
真的
真的
问题是:true
强制cookie只能通过HTTPS发送,而在我的开发机器中,我没有设置HTTPS。但是,这种配置在生产环境中是必不可少的
是否有一种方法可以使此配置对环境敏感?即对于开发false
,对于正式/生产版本true
?如果您使用的是Maven(我强烈建议),那么您可以将概要文件与。您可以在每个配置文件中指定不同的web.xml
(因此您可以为prod环境指定一个,为dev指定另一个)。这里有一个例子
<properties>
<webXmlPath>path/to/your/dev/xml</webXmlPath>
</properties>
<profiles>
<profile>
<id>prod</id>
<properties>
<webXmlPath>path/to/prod/webXml</webXmlPath>
</properties>
</profile>
</profiles>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>${war-plugin.version}</version>
<configuration>
<webXml>${webXmlPath}</webXml>
</configuration>
</plugin>
</plugins>
</build>
解决方案非常简单,使用了一个属性:
<secure>${session.cookie.secure}</secure>
在测试/生产中,我可以将其设置为
true
,我可以用另一种方法:使您的开发机器支持HTTPS。(使用自签名证书对Tomcat来说相对容易)。@Ralph,使用真正的证书就更容易了。这是一个简单而有趣的解决方案!在生产和开发之间存在许多配置差异时非常有用。
<secure>${session.cookie.secure}</secure>
session.cookie.secure=false