У меня есть веб-приложение с защитой Spring за прокси-сервером Apache HTTP Reverse и какое-то глупое приложение, которое ведет себя так, как вы описали выше, и решением для нас было использовать
модуль mod_rewrite
http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html
В любом случае, то, что вы говорите, очень странно, потому что правильная конфигурация безопасности Spring должна использовать относительные URL, и это не должно иметь значения, погода, внутренний или внешний хост используется в URL.
если вы настроите URL
<security:form-login login-page="//login.jsp" login-processing-url="/login" always-use-default-target="true"/>
Должен вести себя одинаково во внутреннем или внешнем URL, это похоже на проблему в конфигурации.