Configurazione condizionale Java (web.xml) - Sviluppo / Produzione


Ho la seguente configurazione nel mio file web.xml in un'applicazione Spring:

<session-config>
   <cookie-config>
      <name>mycookie</name>
      <http-only>true</http-only>
      <secure>true</secure>
    </cookie-config>       
</session-config>

Il problema è: <secure>true</secure> impone il cookie da inviare solo su HTTPS e nella mia macchina di sviluppo non ho configurato HTTPS. Tuttavia, questa configurazione è indispensabile nell'ambiente di produzione.

C'è un modo per rendere questa configurazione sensibile all'ambiente-cioè false per lo sviluppo e true per le build ufficiali/di produzione?

Author: Jens Piegsa, 2015-10-20

2 answers

Se stai usando Maven (che suggerirei vivamente), puoi usare i profili insieme a maven-war-plugin. È possibile specificare diversi web.xml in ciascuno di questi profili (in modo da poter avere uno per l'ambiente prod e altri per dev). Ecco un esempio per te

<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>

Ora ogni build avrà per impostazione predefinita web.xml con le impostazioni dev. Quando si desidera cambiarlo in build di produzione, basta eseguire

mvn clean install -Pprod
 4
Author: Petr Mensik, 2015-10-20 21:09:59

La soluzione era molto semplice usando una propety:

<secure>${session.cookie.secure}</secure>

Nel mio file di sviluppo .properties ho aggiunto:

session.cookie.secure=false

E in test / produzione posso impostarlo su true

 4
Author: Pedro Affonso, 2015-10-21 10:34:41