前两天在搞登录的权限问题
本来找我朋友要了他们用的代码 结果眼看要全部CV过来了 这时候 我们老大说 我们公司有自己封的 把之前项目里的搬过来就行了 不用那么麻烦(鬼知道我问我朋友要了多少个utils)
不过确实 我们公司自己的CV起来还是比别人的舒服
搬完以后
出现了俩问题
一:
登录完以后 postman一跑 还是显示
老大说 这是因为我没有加头信息
里面的token值是登录的时候返回出来的token
二:
加完头信息以后 发现终于不是401了 变成403了
代码是这样的
@RestController
@RequestMapping("/web/batch")
public class BatchController {
@Autowired
BatchesService batchesService;
@GetMapping("/getAllBatch")
@PreAuthorize("hasRole('ROLE_administrator')")
public Page<Batches> getAllBatch(@PageableDefault(sort = {"createdAt"}, direction = Sort.Direction.ASC) Pageable pageable, BatchQueryExample batchQueryExample){
Page<Batches> batches = batchesService.getBatchByQuery(batchQueryExample, pageable);
return batches;
}
}
老大试了一下 发现干掉 @PreAuthorize("hasRole('ROLE_administrator')")就不会出现403的问题了
我研究了好久 确定了我的 ROLE_administrator的值和我数据库的值一样一样的
我还去百度了一下 发现理论上没毛病啊 别人在这里出现问题的原因是没有加前缀ROLE_ 而我谨遵当年java老师的教诲在公司原来的没有ROLE_的基础上还加上了ROLE_呢(我真是个细心的好孩子呢...)
后来我小心翼翼的试着把ROLE_删掉了
emmm发现跑通了
于情于理 这不科学
直到我看见这么一段代码
好嘛 公司的代码里已经对role加了前缀了 所以后续就不需要了......