playframework PLAY_SESSION запоминает URL-адрес страницы перед выходом из системы

У меня реализован модуль SecureSocial и вход через него. Для разных пользователей я сопоставил разные роли и перенаправил их после проверки входа в систему в главном приложении контроллера.

public class Application extends Controller {

    /**
     * This action only gets called if the user is logged in.
     *
     * @return
     */
    @SecureSocial.SecuredAction
    public static Result index() { 
        User currentUser = User.findByEmail(SecureSocial.currentUser().id().id());
        List<UserRole> userRoles = currentUser.getUserRoles();

        for(UserRole ur : userRoles) {
            if(ur.getRole().equals(RoleEnum.ROLE_EMPLOYEE)) {
                return ok(..);                          
        }
        return ok(home.render());
    }

В соответствии с этим некоторые страницы запрещены для роли ROLE_EMPLOYEE. Но при выходе из системы последний URL-адрес сохраняется в файле cookie PLAY_SESSION, и после входа в систему с пользователем с ранее указанной ролью приложение автоматически перенаправляется на неправильную страницу. Есть идеи, что с этим делать?


person Szalai Ladislav    schedule 24.06.2013    source источник


Ответы (1)


Безопасный социальный модуль запоминает cookie сеанса на перенаправленной странице /login или /logout. Таким образом, решением для этого случая является создание новой страницы, которая будет перенаправлена ​​​​после выхода из системы. Файл cookie будет сброшен, и с этой новой страницы пользователь может быть перенаправлен обратно с помощью кнопки/ссылки/smthg для входа в систему с любыми сохраненными данными файла cookie. В следующем выпуске безопасного социального модуля можно получить новое исправление.

person Szalai Ladislav    schedule 19.07.2013