springboot结合shiro和jwt

项目结构

在这里插入图片描述

增加全局异常配置

/**
 * @Description GlobaException 全局的异常配置
 * @Author YiLong Wu
 * @Date 2020-03-11 22:28
 * @Version 1.0.0
 */
@RestControllerAdvice
public class GlobalException {

    /**
     * 处理用户名密码错误的异常
     * @return
     */
    @ExceptionHandler({UnknowUsenameAndPasswordException.class})
    @ResponseStatus
    public ResponseError unknowUsenameAndPasswordException() {
        return new ResponseError(HttpStatus.INTERNAL_SERVER_ERROR.value(),"用户名或密码错误");
    }

    /**
     * 处理权限不足的异常
     * @param e
     * @return
     */
    @ExceptionHandler(AuthorizationException.class)
    @ResponseStatus(HttpStatus.FORBIDDEN)
    public ResponseError authorizationException(AuthorizationException e) {
        return new ResponseError(HttpStatus.FORBIDDEN.value(),"你没有权限访问");
    }

    /**
     * 处理token的异常
     * @return
     */
    @ExceptionHandler(InvalidTokenException.class)
    @ResponseStatus
    public ResponseError invalidTokenException() {
        return new ResponseError(HttpStatus.INTERNAL_SERVER_ERROR.value(),"不合法的token");
    }

    /**
     * 处理用户账户异常
     * @return
     */
    @ExceptionHandler(UnknownAccountException.class)
    @ResponseStatus
    public ResponseError unknownAccountException() {
        return new ResponseError(HttpStatus.INTERNAL_SERVER_ERROR.value(),"账户异常");
    }
}


WuYiLong原创大约 3 分钟javashirojwt
springboot结合shiro的demo

项目结构

在这里插入图片描述

如图所示,项目一共分为6层,分别是:

  • common公共层:主要是放置一些公共的模块
  • controller层:数据的表示层,俗称vo
  • dao层: 用于操作数据库,增删改查
  • Exception异常层:定义一些全局的异常,方便维护
  • model层: 数据库表的映射
  • shiro层:主要是配置shiro的授权和认证

WuYiLong原创大约 4 分钟javashiro