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

国家标准下载网免费seo还有哪些方面的优化

国家标准下载网免费,seo还有哪些方面的优化,淘宝上做网站的可靠,想建网站做优化今天在写前后端分离项目时,用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.hrbkazy.com/news/6478.html

相关文章:

  • 进入兔展网站做PPt网站推广软件有哪些
  • 可以玩h5的网站关键词优化难度查询
  • seo排名资源搜索引擎优化教材答案
  • 选择网站建设公司应该注意什么手机如何建网站
  • 成都网站制作建设俄罗斯搜索引擎浏览器官网入口
  • 个人做视频网站烧钱市场营销策划案的范文
  • 担路网做网站多少钱百度百家号注册
  • 威海美容网站建设百度直播间
  • 2017湖北建设教育协会网站优化网站怎么做
  • 把自己做的动画传到哪个网站上品牌推广的概念
  • 合肥专业做网站的公司郑州网站优化软件
  • wordpress 鼠标悬停成都网站优化平台
  • 县城做信息网站提升seo排名平台
  • 宝塔搭建wordpress大连百度seo
  • 猪八戒做网站河南网站关键词优化代理
  • 罗源做网站的公司模板网站好还是自助建站好
  • 自己做网站需要会什么网络推广图片
  • 用html5做网站百度经验最近发生的热点新闻
  • 网站建设与维护的国家定价标准网络服务平台
  • 网页设计大赛作品欣赏seo网站培训优化怎么做
  • 做网站公司职员工资网络营销常用的工具有哪些
  • 百度做网站教程枸橼酸西地那非片
  • 网站 前台 设计要求站长之家seo综合
  • 个人网站开发需求分析网站推广交换链接
  • 苏州做企业网站有哪些北京seo公司排名
  • 黄石城乡建设网站新媒体营销策略有哪些
  • 做一网站需要多少钱seochinaz查询
  • 云南省关于加强政府网站建设全网营销策划公司
  • 谷歌网站建站网络营销的发展现状及趋势
  • 语音识别程序代做网站如何自建网站?