dromara / Sa-Token

一个轻量级 Java 权限认证框架,让鉴权变得简单、优雅!—— 登录认证、权限认证、分布式Session会话、微服务网关鉴权、单点登录、OAuth2.0
https://sa-token.cc
Apache License 2.0
16.22k stars 2.58k forks source link

SaInterceptor拦截器中功能未生效 #679

Open hanweidong opened 3 weeks ago

hanweidong commented 3 weeks ago

使用版本:

1.39.0

报错信息:

我想在SaInterceptor中对越权访问的用户记录日志,但是代码好像没有生效。

希望结果:

对越权访问的用户记录日志

复现步骤:

@Override public void addInterceptors(InterceptorRegistry registry) { // 注册 Sa-Token 拦截器,打开注解式鉴权功能 registry.addInterceptor(new SaInterceptor(handle -> { Object loginId = StpUtil.getLoginId(); log.info("loginId is {}", loginId); try { Account account = accountService.findById((String) loginId); String role = account.getRoleType().name();

    SaRouter.match("/**").check(r -> {
      StpUtil.checkRole(role);
    });
  } catch (NotRoleException | CommonException e){
    log.info("not role exception.");
  }
})).addPathPatterns("/**");

}

< 备注:如果复现步骤比较复杂,请将 demo 上传到 gitee 并留下地址 >