ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

shiro登录之后后端需要权限的接口仍显示无权限问题

2022-07-10 09:35:34  阅读:491  来源: 互联网

标签:getUserInfo console log res 接口 权限 id shiro Subject


报错 The current Subject is not authenticated. Access denied.

后端接口如下

	@RequiresAuthentication
    @GetMapping("/getUserInfo")
    public Object logout() {
        Long id = ShiroUtil.getProfile().getId();
        return Result.succ(id);
    }

前端请求

this.$axios.get("getUserInfo").then((res) => {
      console.log("=======================");
      console.log(res)
      console.log("=======================");
    })

注意:解决方法!!!!

可能是因为前端发送请求没有携带token

改为如下请求方式,Authorization的值是之前登录接口存到localstorage的数据

this.$axios.get("getUserInfo", {
      headers: {
        Authorization: localStorage.getItem("token"),
      },
    }).then((res) => {
      console.log("=======================");
      console.log(res)
      console.log("=======================");
    })

完美解决问题

如果后端接口用@RequiresPermissions

@RequiresPermissions("update")
    @GetMapping("/getUserInfo")
    public Object logout() {
        Long id = ShiroUtil.getProfile().getId();
        return Result.succ(id);
    }

报错如下

This subject is anonymous - it does not have any identifying principals and authorization operations require an identity to check against.  A Subject instance will acquire these identifying principals automatically after a successful login is performed be executing org.apache.shiro.subject.Subject.login(AuthenticationToken) or when 'Remember Me' functionality is enabled by the SecurityManager.  This exception can also occur when a previously logged-in Subject has logged out which makes it anonymous again.  Because an identity is currently not known due to any of these conditions, authorization is denied.

此种情况可能也是前端没有携带token

如有问题可以留言交流

标签:getUserInfo,console,log,res,接口,权限,id,shiro,Subject
来源: https://www.cnblogs.com/raspberry--PI/p/16462548.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有