0

我已经实现了 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 存储在 PLAY_SESSION cookie 中,并且在使用之前的意思角色的用户登录后,应用程序会自动重定向到错误的页面。有什么想法吗?

4

1 回答 1

0

安全社交模块会记住重定向页面 /login 或 /logout 上的会话 cookie。因此,这种情况的解决方案是制作新页面,注销后将重定向。cookie 将被重置,并且从这个新页面,用户可以通过按钮/链接/smthg 重定向回来,以使用任何保存的 cookie 数据登录。有可能在下一个版本的安全社交模块中获得一些新的修复。

于 2013-07-19T08:42:37.327 回答