указать переменный контекстный путь в Spring Security (3.0.x) - PullRequest
2 голосов
/ 09 декабря 2011

Мы разрабатываем "коробочный" веб-продукт, поэтому я не могу предвидеть среду, в которой развертывается приложение Это приложение использует Spring-Security. Но оказалось, что если Tomcat разместил приложение не в корне, то следующая конфигурация завершится неудачно:

<sec:http auto-config="true" >
    ....
    <sec:form-login login-page="/ui/Login" />

Следующая рекомендация: https://stackoverflow.com/a/6934712/149818 для использования

#{servletContext.contextPath} не работает. Пользователь вместо http://foo/myApp/ui/Login перенаправляется на http://foo/ui/Login

Так что мой вопрос

  • либо как получить # {servletContext.contextPath} живым
  • или как заставить Spring-Security распознавать фактический contextPath

1 Ответ

1 голос
/ 12 декабря 2011

Большое спасибо @Luke Taylor и @axtavt - моя ошибка отсутствует root '/' в

<sec:http auto-config="true" use-expressions="true">
     <sec:intercept-url pattern="/ui/Login" 
                        access="IS_AUTHENTICATED_ANONYMOUSLY"/>

Когда появляется '/' - # {servletContext.contextPath} начинает работать правильно.

...