Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java条件配置(web.xml)-开发/生产_Java_Spring_Jakarta Ee_Web.xml_Production Environment - Fatal编程技术网

Java条件配置(web.xml)-开发/生产

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

我在Spring应用程序的
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