Shiro实现用户自动登录

用户的自动登录功能,顾名思义就是当用户在网站登录后,关闭了浏览器或者服务器重启了在下一次用户访问该网站时能自动将上次用户的登录信息取出来并立即登录,而不再需要用户去做登录操作。

在我做的一个视频教程网站(http://www.icoolxue.com,一个高清视频教程在线观看的网站)上加入了此功能。

Shiro是一个强大的安全框架,它提供了一个叫Remeber Me的功能来实现用户的自动登录。需要在全局拦截器(Filter也可以)中加入如下代码:

Subject subject = SecurityUtils.getSubject();
if (!subject.isAuthenticated() && subject.isRemembered()) {
            Object principal = subject.getPrincipal();
            if (null != principal) {
                User user = userSvc.getByUsername(String.valueOf(principal));
                String password = user.getPassword();
                UsernamePasswordToken token = new UsernamePasswordToken(user.getUsername(), password);
                token.setRememberMe(true);
                subject.login(token);//登录
            }
        }
 
posted @ 2015-04-22 16:10  sunruntheway  阅读(1604)  评论(0编辑  收藏  举报