Переход к другому модулю GWT с помощью Spring Security после успешного входа - PullRequest
2 голосов
/ 15 декабря 2011

У меня есть приложение GWT, состоящее из двух модулей: «Приложение» для основных функций и «Вход» для входа в систему / забытый пароль / регистрация новых пользовательских функций.

Я использую Spring Security для перенаправления пользователя наApplication.html при успешном входе в систему:

<security:http auto-config="true">
    <security:intercept-url pattern="/Application.html**" access="ROLE_USER"/>
    <security:intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
    <security:form-login login-page="/Login.html" default-target-url="/MainApplication.html" 
        always-use-default-target="true" authentication-failure-url="/Login.html?failed=true"/>
</security:http>

После успешной аутентификации пользователя через Login.html загружается модуль Application.html, и на сервер выполняются соответствующие запросы, но содержимое браузера остается прежним, а URL-адрес в адресной строкевсе еще "Login.html"!

Итак, вопрос: почему не происходит перенаправление?

Заранее спасибо!

1 Ответ

0 голосов
/ 15 декабря 2011

Вы перехватываете Application.html через SpringSecurityFilter, а целевой URL-адрес указывается как MainApplication.html.В mainApplication.html попытайтесь поместить этот

      <meta http-equiv="REFRESH" content="0;url=Application.html">

, чтобы он вернул вас обратно в Application.html.Вы можете сделать некоторые авторизации здесь, если вам нужно. Также проверьте, правильно ли установлен DelegatingFilterProxy в вашем файле web.xml.

. Мои конфигурации следующие.Я использую приложение GWT

в моем jsp

<form name="login" action="<c:url value="j_spring_security_check"/>" method="POST">

в моем web.xml

<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

в моем welcome.jsp

<sec:authorize ifAnyGranted="<%=gRoles%>">      
  <meta http-equiv="REFRESH" content="0;  url=demoApp/demoApp.jsp">
</sec:authorize>

spring-security.xml

    <http auto-config="false" access-denied-page="/login.jsp?error=Access%20Denied">
    <intercept-url pattern="/login.jsp*" filters="none" />
    <intercept-url pattern="/demoApp/**" access="${app.roles}" />

    <form-login login-page="/login.jsp"
                default-target-url="/welcome.jsp" 
                always-use-default-target="true" 
                authentication-failure-url="/login.jsp?error=true" />
    <logout logout-success-url="/login.jsp"/>   
    <anonymous/>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...