由于项目中需要用到shiro,但是用户来自不同的三张表,需要根据token判断不同类型的用户,但是shiro得token不支持带类型的参数,所以需要重写token及认证器
1.自定义token
/**
* 自定义带用户类型token
* @author Sunny
*/
public class UsernamePasswordByUserTypeToken extends UsernamePasswordToken {
private static final long serialVersionUID = -7638434498222500528L;
/*
* 用户类型
* 1:积分后台用户(后台管理员)
* 2:积分兑换端用户(店长店员)
* 3:积分验证端用户(第三方合作店铺)
*/
private String userType;
public String getUserType() {
return userType;
}
public void setUserType(String userType) {
this.userType = userType;
}
public UsernamePasswordByUserTypeToken(String username, String password, String userType) {
super(username, password);
this.userType = userType;
}
}
2.自定义认证器
/**
* 自定义认证器
*
* @author Sunny
*/
public class PointRealmAuthenticator extends ModularRealmAuthenticator {
/**
* 存放realm
*/