Commit 5d92b631 by 段启岩

用户拉黑后判断

parent dd2413ea
......@@ -6,16 +6,18 @@ import cn.meteor.beyondclouds.core.constant.SysConstants;
import cn.meteor.beyondclouds.core.emuns.AuthorizationErrorCode;
import cn.meteor.beyondclouds.core.exception.AuthorizationException;
import cn.meteor.beyondclouds.core.redis.TokenManager;
import cn.meteor.beyondclouds.util.JwtUtils;
import cn.meteor.beyondclouds.modules.user.entity.User;
import cn.meteor.beyondclouds.modules.user.enums.UserErrorCode;
import cn.meteor.beyondclouds.modules.user.enums.UserStatus;
import cn.meteor.beyondclouds.modules.user.exception.UserServiceException;
import cn.meteor.beyondclouds.modules.user.service.IUserService;
import cn.meteor.beyondclouds.util.RequestUtils;
import cn.meteor.beyondclouds.util.ThreadLocalMap;
import com.auth0.jwt.interfaces.Claim;
import org.springframework.util.StringUtils;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
* Token拦截器,根据token信息解析出subject
......@@ -30,8 +32,11 @@ public class TokenInterceptor implements HandlerInterceptor {
private TokenManager tokenManager;
public TokenInterceptor(TokenManager tokenManager) {
private IUserService userService;
public TokenInterceptor(TokenManager tokenManager, IUserService userService) {
this.tokenManager = tokenManager;
this.userService = userService;
}
@Override
......@@ -64,6 +69,12 @@ public class TokenInterceptor implements HandlerInterceptor {
if (null == userId) {
throw new AuthorizationException(AuthorizationErrorCode.SIGN_VERIFY_FAILURE);
}
// 用户如果被封号,则直接返回错误
User user = userService.getById(userId);
if (!user.getStatus().equals(UserStatus.NORMAL.getStatus())) {
throw new UserServiceException(UserErrorCode.USER_DISABLED);
}
// 构建一个经过系统认证的subject
Subject authenticatedSubject = Subject.authenticated(userId, RequestUtils.getIpAddr(request));
ThreadLocalMap.put(SysConstants.HTTP_ATTRIBUTE_SUBJECT, authenticatedSubject);
......
......@@ -11,26 +11,26 @@ public enum UserErrorCode implements IErrorCode {
/**
* 手机号已经被注册//
*/
MOBILE_REGISTERED(1001, "该手机号已被占用"),
EMAIL_REGISTERED(1002, "该邮箱已被占用"),
REG_VERIFY_CODE_ERROR(1003, "验证码错误"),
CAN_NOT_FOLLOW_SELF(1004, "不能关注自己"),
FOLLOWED_USER_NOT_EXISTS(1005, "被关注用户不存在"),
FOLLOWER_USER_NOT_EXISTS(1006, "关注者不存在"),
ALREADY_FOLLOWED(1007, "已关注过该用户"),
NON_FOLLOWED(1008, "没有关注过该用户"),
USER_ALREADY_BLACKED(1009,"用户已经被你拉进黑名单"),
YOU_ALREADY_BLACKED(10010,"你已经被对方拉进黑名单"),
CAN_NOT_BLACK_SELF(10011,"不能拉黑自己"),
USER_NOT_BLACKED(10012,"用户没有被拉黑"),
INVALID_ACTIVE_CODE(10013, "非法的激活码"),
BINDING_EMAIL_VERIFY_CODE_ERROR(10014, "邮箱验证码错误"),
BINDING_MOBILE_VERIFY_CODE_ERROR(10015, "手机验证码错误"),
NON_LOCAL_AUTH_INFO(10016, "该手机未注册"),
USER_NOT_EXISTS(10017, "要查看的用户不存在"),
USER_NICK_NAME_USED(10018,"该昵称已存在"),
NICK_MODIFY_UPPER_LIMIT(10019, "本月昵称修改次数已达上限"),
USER_DISABLED(10020, "您已被封号,请联系管理员解封");
MOBILE_REGISTERED(13001, "该手机号已被占用"),
EMAIL_REGISTERED(13002, "该邮箱已被占用"),
REG_VERIFY_CODE_ERROR(13003, "验证码错误"),
CAN_NOT_FOLLOW_SELF(13004, "不能关注自己"),
FOLLOWED_USER_NOT_EXISTS(13005, "被关注用户不存在"),
FOLLOWER_USER_NOT_EXISTS(13006, "关注者不存在"),
ALREADY_FOLLOWED(13007, "已关注过该用户"),
NON_FOLLOWED(13008, "没有关注过该用户"),
USER_ALREADY_BLACKED(13009,"用户已经被你拉进黑名单"),
YOU_ALREADY_BLACKED(130010,"你已经被对方拉进黑名单"),
CAN_NOT_BLACK_SELF(130011,"不能拉黑自己"),
USER_NOT_BLACKED(130012,"用户没有被拉黑"),
INVALID_ACTIVE_CODE(130013, "非法的激活码"),
BINDING_EMAIL_VERIFY_CODE_ERROR(130014, "邮箱验证码错误"),
BINDING_MOBILE_VERIFY_CODE_ERROR(130015, "手机验证码错误"),
NON_LOCAL_AUTH_INFO(130016, "该手机未注册"),
USER_NOT_EXISTS(130017, "要查看的用户不存在"),
USER_NICK_NAME_USED(130018,"该昵称已存在"),
NICK_MODIFY_UPPER_LIMIT(130019, "本月昵称修改次数已达上限"),
USER_DISABLED(130020, "您已被封号,请联系管理员解封");
UserErrorCode(long code, String msg) {
this.code = code;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment