Bill Barker wrote:

This is totally Tomcat specific, so won't necessarily port if you decide to change containers (but without looking probably still works for GlassFish and JBoss). Tomcat does Ant style variable replacement when parsing web.xml (both the one in conf and the one in WEB-INF). So something like

 <context-param>
    <param-name>config-file-location</param-name>
    <param-value>${my.config.file.location}</param-value>
 </context-param>

will work if the System property my.config.file.location is set by the startup script/Windows service manager.

That sounds like a good idea !
Usually, there are only a few parameters that change per customer, like
the IP address of some external server, or some login id/pw for a remote
service.  That would really do the trick in most cases.

In addition, it would avoid having to put some potentially sensible
values in a web-xml file which has to be readable by the Tomcat user.
(And even by me, come to think of it).
And we don't even have to change the applications.

I'll expand that a bit for later reference by dummies like me :

Under Unix/Linux, the /etc/init.d/tomcat script is run by root, so such settings could set as some variable which would be expanded in the line calling up the JVM, no matter which user the JVM starts under, like :

file : /etc/confidential/tomcat_settings.sh  (only readable by root)

REALLY_CONFIDENTIAL_SETTINGS="-D myfilter.auth.pw=secretpw"
...


file : /etc/init.d/tomcat

CONFIDENTIAL_SETTINGS=""
if [ -f "/etc/confidential/tomcat_settings.sh" ]; then
  . "/etc/confidential/tomcat_settings.sh"
fi
...
start)
  su - tomcatuser -c "/var/lib/jvm/java $CONFIDENTIAL_SETTINGS -jar  ...."


file : (tomcat_home)/webapps/myapp/WEB-INF/web.xml
   ...
   <init-param>
      <param-name>secretpw</param-name>
      <param-value>$(myfilter.auth.pw)</param-value>
   </init-param>
  ...

So now we can give the customer a new war file, with an update of his application, including a WEB-INF/web.xml file, and he can just install it and overwrite his existing web.xml, without even us having to know the secret password.

Great !

Please feel free to comment, particularly if there is a mistake above.

Also, I believe the above - if correct - could be a useful addition to the Tomcat FAQ, but I can't figure out if (or how) to add something there. It seems to display "immutable page" everywhere and I can't find an option to add something.
I guess this could better be another post.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to