Shiro无密码登录

在某些应用场景下我们或许需要直接登录,而不需要用户输入密码,例如用户用手机直接登录的场景。

在Shiro中我们通过在线程变量中绑定一个已通过验证的Subject对象即可实现。

PrincipalCollection principals = new SimplePrincipalCollection(
				user.getId(), "MobileRealm");
Builder builder = new WebSubject.Builder(
				ServletActionContext.getRequest(),
				ServletActionContext.getResponse());
builder.principals(principals);
builder.authenticated(true);
WebSubject subject = builder.buildWebSubject();
ThreadContext.bind(subject);

以上是用于Web Application的代码,所以用的是WebSubject,应根据自己的应用选择需要创建的Subject类。

猜你喜欢

转载自jnoee.iteye.com/blog/1944703