Apache Tomcat tiene la habilidad de redireccionar todo el tráfico HTTP a HTTPS lo cual hace que cualquier entrada al sitio sea segura. Pero como en el caso de Mapaprop queremos servir imágenes de las propiedades a third party feeds y sorprendentemente como en el caso de OLX no pueden manejar requests HTTPS para las imágenes.

Editando el archivo de configuración server.xml podemos redireccionar todo el tráfico a HTTPS de la siguiente manera:

<Connector port="8080" protocol="HTTP/1.1"
redirectPort="443"/>

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="conf/keystore" keystorePass="somepass"/>

Ahora para evitar de manera permanente el protocolo HTTPS podemos editar el archivo web.xml de cada webapp que queremos servir y agregar el siguiente security constraint:

<!-- Require HTTPS for everything except /img (favicon) and /css. -->
<security-constraint>
<web-resource-collection>
<web-resource-name>Private</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>PrivateORPublic</web-resource-name>
<url-pattern>/somefolder/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>

De ésta manera el folder /somefolder/* y todos sus descendientes pueden o no utilizar el protocolo HTTPS.