Bootstrap

jeecgboot 查询_Jeecg-Boot 开发经验积累 原创

1、排除token验证9 q* X3 e& \6 a; i

$ c) X: F1 l/ Z5 c* e如下图,访问自己写的接口无效。提示token失效3 C7 b7 w# }5 e; k0 V0 [

& O/ q9 [' i# x1 x  P

我们可以找到这个ShiroConfig.java类,将以下注册 jwt 的代码注释掉,如下图* _3 |9 D/ X' u! Z4 }8 q0 ~3 r

2、前端是如何传token到后端的?4 ~# F1 b0 F7 x  L, D/ n) ]2 j

' t/ [1 V5 N! H" k3 I; t抓取一个请求,可以看到有一个名为X-Access-Token的Request headers- a% D, e* W5 K8 a6 M! C  R

9 H: N& D$ h9 I. W# G

3、在controller上使用 @RequiresRoles("admin")

7 |6 c2 e) K5 r* o3 q3 \, Z" J( Z0 B' D6 H

直接访问则会报错如下,只有当前用户的角色是admin的情况下才能访问* h& @, }: B; r  `, C9 _$ m# q

& e% B" [0 K) O$ E( Q/ H4 [& A

再来看org.jeecg.common.exception.JeecgBootExceptionHandler这个类,是全局异常处理器,里面有这个方法。即是它截获了UnauthorizedException.class, AuthorizationException.class两个异常。然后在这里处理# ^9 ~  r; a% l- b5 a

" k8 ]% b) o% E, [8 [1 B

如果要正常访问被这个注解所修饰的接口,那么请不要按照第一步的方式注释掉那段代码。

" X/ {" j$ |/ b8 n! ^然后将已经登录admin账户后的浏览器请求的的这段信息copy下来

Y4 f1 T& w; B, X$ @2 R

3 W9 g1 `. U* r2 [3 n4 o

' V3 G$ J8 J. D  u粘贴到postman里,带上token后请求即可!9 t% T  C2 ?) c9 R9 k8 |0 m

" w0 M. i5 U: e5 L

4、获得当前用户9 j. S! w4 y% N+ e+ m

/ Z* K. q  F2 A

1、直接获取,注意若不传token则获取的将是null0 G7 @: k' i& I

LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();System.out.println(sysUser);2、或者使用根据token获取用户信息

( ^. U* O# d  Y# W$ V( ?- C- k7 _org.jeecg.common.system.util.JwtUtil.getUsername(token)5、打印sql

; G; X! ^4 V  {  J2 e, X9 k

* D: ]+ `; u4 w* Gapplication-dev.yml文件! I1 F/ q  T6 I; w, }5 j

configuration:    # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl再配合mybatis-log-plugin插件即可完成打印真实sql: l* |9 R! `+ `6 K0 t

6、使用原生sql进行分页查询

8 ^! w7 |* m' W- y2 b! t/ Q: J$ Z5 G/ v$ P7 V( _+ c

mapper

/ }# b3 [3 T5 l5 R" @    @Select("SELECT * FROM tb_user where name LIKE  concat('%',#{name},'%') ")    List queryPage(Page page,@Param("name") String name);TUserService& y; a. _4 |. N$ h0 r

Page queryPage(Page page, TUser tUser);TUserServiceImpl

) N. t9 _5 b& I* Y3 w! e @Override    public Page queryPage(Page page, TUser tUser) {        return page.setRecords(baseMapper.queryPage(page,tUser.getName()));    }TUserController

5 K) [; l- {; b; Y% K2 }; m9 _$ B@AutoLog(value = "测试-分页")    @ApiOperation(value = "测试-分页", notes = "测试-分页")    @RequestMapping(value = "/getListFy", method = RequestMethod.GET)    public Result getListFy(TUser tUser,                               @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,                               @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {        Result result = new Result();        Page page = new Page(pageNo, pageSize);        page = tUserService.queryPage(page,tUser);//通知公告消息        log.info("查询当前页:" + page.getCurrent());        log.info("查询当前页数量:" + page.getSize());        log.info("查询结果数量:" + page.getRecords().size());        log.info("数据总数:" + page.getTotal());        result.setSuccess(true);        result.setResult(page);        return result;    }9 R$ v; L* _0 L- [5 T

Java吧 收集整理 java论坛 www.java8.com

;