Остановить Spring Security SavedDefaultRequest - PullRequest
0 голосов
/ 12 ноября 2018

У нас есть приложение, использующее Spring Security (версия 4.0.3.RELEASE).Когда пользователь переходит к конечной точке https://system.com/app/accountSummary?accountId=230, он перенаправляется на другую страницу, и страница перенаправления устанавливается так, как мы видим в журнале:

DefaultSavedRequest added to Session: DefaultSavedRequest[http://system.com/app/accountSummary?accountId=230]

Затем мы перенаправляем их на главную страницу.,Когда наш пользователь нажимает для входа в систему, он сбрасывает DefaultSavedRequest.Мы видим это в журналах: DefaultSavedRequest added to Session: DefaultSavedRequest[http://system.com/app/mainpage]

После того, как пользователь правильно войдет в систему, Spring Security вернет его на главную страницу, а не на экран учетной записи, который он хотел.

Есть ли способ остановить обновление DefaultSavedRequest или проверить, установлен ли он, и не обновлять его?Можно ли что-то сделать на уровне страницы?Или я должен сделать это по-другому.

1 Ответ

0 голосов
/ 10 декабря 2018

Мой товарищ по команде создал это решение: AuthenticationPoint.java

SavedRequest savedRequest = null;
        if (request.getSession().getAttribute(ORIG_SAVED_REQUEST_URL) != null){
            saveURL = request.getSession().getAttribute(ORIG_SAVED_REQUEST_URL).toString();
            savedRequest = (SavedRequest) request.getSession().getAttribute(ORIG_SAVED_REQUEST);
            request.getSession().setAttribute(ORIG_SAVED_REQUEST_URL, saveURL);
            request.getSession().setAttribute(ORIG_SAVED_REQUEST, savedRequest);
            request.getSession().setAttribute(SPRING_SECURITY_SAVED_REQUEST, savedRequest);
            logger.debug("Session Variable ORIG-SAVED-REQUEST={}",savedRequest.getRedirectUrl());
        }

Затем в Controller.java

if ((request != null) && (request.getSession() != null) &&
            (request.getSession().getAttribute(SPRING_SECURITY_SAVED_REQUEST) != null) ){
        savedRequest = (SavedRequest) request.getSession().getAttribute(SPRING_SECURITY_SAVED_REQUEST);
        request.getSession().setAttribute(ORIG_SAVED_REQUEST_URL, savedRequest.getRedirectUrl());
        request.getSession().setAttribute(ORIG_SAVED_REQUEST, savedRequest);
        logger.debug("Session Variable ORIG-SAVED-REQUEST={}",savedRequest.getRedirectUrl());
    }

Затем он добавил это в весенний код безопасности xml:

<property name="alwaysUseDefaultTargetUrl"><value>false</value></property>

Эти изменения решили проблему в нашем приложении.

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