当前位置: 首页 > news >正文

做五金上哪个网站推广电子商务网站发展建设论文

做五金上哪个网站推广,电子商务网站发展建设论文,网站内容的实现方式,大淘客网站如何建设今天在写前后端分离项目时,用jwt加shiro进行登录权限校验时,RequireRoles("admin")注解不起作用,记录一下。 前提:数据库里面的user_type代表用户类型 :0普通用户 ;1:专家&#xff1…

今天在写前后端分离项目时,用jwt加shiro进行登录权限校验时,@RequireRoles("admin")注解不起作用,记录一下。

前提:数据库里面的user_type代表用户类型 :0普通用户 ;1:专家;2:管理员

1.JwtReam中的内容:

@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
//进行权限的认证
String token = (String) principalCollection.getPrimaryPrincipal();
log.info("进入进行权限认证的方法!token为{}", token);
User user = null;
SimpleAuthorizationInfo simpleAuthorizationInfo = new SimpleAuthorizationInfo();
try {Claims decode = JwtUtils.decode(token);String email = (String) decode.get("email");user = userLoginService.getUserInfoByEmail(email);if (user.getUserType() == 2) {simpleAuthorizationInfo.addRole("admin");log.info("为用户添加admin权限");}
} catch (Exception e) {log.info("解析token异常!");// 解析token异常,返回错误信息!
}
log.info("用户类型为{}",user.getUserType());
return simpleAuthorizationInfo;
}

2.controller中的写法

@RestController
@RequestMapping("admin/user/")
@Validated
@Api(tags = "管理员管理用户")
@RequiresRoles(value = "admin",logical = Logical.AND)
public class ManagerUserController {@Resourceprivate UserService userService;@GetMapping("getAllUser")@ApiOperation(value = "获取所有的用户",response = UserInfo.class)public Result<PageResult> getAllUser(PageDto pageDto) {boolean role = SecurityUtils.getSubject().hasRole("admin");log.info("用户是否有权限:{}",role);return userService.getAllUser(pageDto);}
}

3.结论

这里可以看到controller里面加了@RequiresRoles(value = "admin",logical = Logical.AND),用户需要权限才能访问接口,但是并没有生效。看看控制台输出了什么:

   : 进入进行权限认证的方法!token为 。。。。。。: 用户类型为0: 用户是否有权限:false

说明进入了权限认证的方法doGetAuthorizationInfo(PrincipalCollection principalCollection),并且controller里面的方法判断用户是不是有权限,显示用户并没有权限,但是还是进入了方法,并且执行了方法,获取了数据,

说明@RequiresRoles注解并没有生效

4.解决办法 

在ShiroConfig里面加上下面的代码:

//开启对shiro注解的支持
@Bean
public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) {
AuthorizationAttributeSourceAdvisor advisor = new AuthorizationAttributeSourceAdvisor();
advisor.setSecurityManager(securityManager);
return advisor;
}
//开启aop注解支持
@Bean
public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator() {DefaultAdvisorAutoProxyCreator defaultAAP = new DefaultAdvisorAutoProxyCreator();defaultAAP.setProxyTargetClass(true);return defaultAAP;
}

 这时用户如果没有权限就会下面的报错:

AuthorizationException

可以在全局异常中捕获,返回信息给前端,这里不再演示。

参考链接:https://www.cnblogs.com/tuifeideyouran/p/7696055.html

参考链接:https://www.cnblogs.com/shiguotao-com/p/10617693.html

http://www.yayakq.cn/news/386698/

相关文章:

  • 青岛网站推广引流常州网络排名优化
  • 番禺响应式网站开发用自建网站做外贸
  • 手机端的网站怎么做crm系统
  • 如何高效建设品牌网站静态网站如何添加关键词
  • 烟台教育网站建设wordpress 点击量
  • 桂林北站到阳朔软件开发专业适合女生吗
  • 它是企业整体网站seo策划方案
  • 网站服务器的作用和功能有哪些网站首页缩略图 seo
  • 图书销售网站建设爱站网是干什么的
  • 好网站制作公司有哪些设计公司起名怎么起好
  • 徐州网站建设托管外网域名购买
  • 电力建设集团网站汕头市平台网络推广公叿
  • 响应式企业网站cms在线画流程图的网站
  • 纯html5 网站网站建设是一项系统工程
  • 怎么做网络销售的网站企业网络是指
  • 新视网站建设联系qq彩云小梦ai写作网站
  • 网络编程和网站建设联系建微信网站模板
  • 新手做网站流程腾讯云建站多少钱
  • 公司主页网站怎么做通用集团网站模板
  • dede关闭网站网站301做下
  • 新开传奇最大网站999代做网站关键词
  • 哪个网站做推销产品天猫官方网站首页
  • 青海网站制作多少钱域名还在备案可以做网站吗
  • 网站关键词字数wordpress 发布文章
  • 海口网站运营托管费用php访问网站
  • 深圳建设材料价格网站筹备网站建设
  • 广州建设六马路小学网站互联网企业包括哪些行业
  • 培训制作网站源码网页制作框架模板的步骤
  • 网站缺点高端建设网站公司哪家好
  • 建设手机网站的目的鲜花网站数据库建设分析