Shiro 自动登录,通过 Shiro Remember Me 实现自动登录

Shiro中有remember me,当登录时选择记住我,那么shiro 会对principal加密存储在cookies,我想通过该cookies实现用户自动登录的功能。(principal中存储的是用户登录时的username

在系统全局拦截器中

//auto login
Subject subject = ShiroKit.getSubject(ai.getController()
		.getRequest().getServletContext());

if(!subject.isAuthenticated() && subject.isRemembered()){
	User user = User.dao.getUserByEmail(subject.getPrincipal().toString());
	subject.login(new UsernamePasswordToken(user.getStr(UserKey.EAMIL), 
			user.getStr(UserKey.PASSWORD), true, 
			ai.getController().getRequest().getRemoteAddr()));
	
	Session session = subject.getSession(false);
	session.setAttribute(MyConstants.SESSION_USER_NAME, user);
}


这样很简单的实现了自动登录。

你可能感兴趣的:(shiro,自动登录,login,remember)