Shiro用户鉴权框架 子线程获取不到用户信息问题解决

简介: Shiro用户鉴权框架 子线程获取不到用户信息问题解决

报错:

ERROR o.a.c.c.C.[.[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] threw exception
org.apache.shiro.UnavailableSecurityManagerException: No SecurityManager accessible to the calling code, either bound to the org.apache.shiro.util.ThreadContext or as a vm static singleton.  This is an invalid application configuration.
  at org.apache.shiro.SecurityUtils.getSecurityManager(SecurityUtils.java:123)
  at org.apache.shiro.subject.Subject$Builder.<init>(Subject.java:626)
  at org.apache.shiro.SecurityUtils.getSubject(SecurityUtils.java:56)

解决:

// 当前登录用户信息
Subject subject = SecurityUtils.getSubject();
Runnable work = new Runnable() {
    @Override
    public void run() {
        System.out.println("用户信息:" + JSON.toJSONString(ShiroUtils.getUserEntity()));
    }
};
// 与子线程关联
work = subject.associateWith(work);
Executor executor = Executors.newCachedThreadPool();
// 执行
executor.execute(work);
相关文章
|
监控 druid Java
Spring Boot 3 集成 Druid 连接池详解
在现代的Java应用中,使用一个高效可靠的数据源是至关重要的。Druid连接池作为一款强大的数据库连接池,提供了丰富的监控和管理功能,成为很多Java项目的首选。本文将详细介绍如何在Spring Boot 3项目中配置数据源,集成Druid连接池,以实现更高效的数据库连接管理。
13815 2
Spring Boot 3 集成 Druid 连接池详解
|
消息中间件 Java RocketMQ
消息队列 MQ产品使用合集之当SpringBoot应用因网络不通而启动失败时,该如何解决
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
Shiro报错No SecurityManager accessible to the calling code, either bound to the org.apache.shiro.util.
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/catoop/article/details/63257702 问题描述: 项目使用 SpringMVC 并使用 Shiro 来管理Session控制权限。
11545 2
|
存储 SQL 分布式计算
物联网数据库 IoTDB 解析
Apache IoTDB 是专为物联网时序数据打造的数据库,提供数据采集、存储、分析的功能。IoTDB 提供端云一体化的解决方案,在云端,提供高性能的数据读写以及丰富的查询能力,针对物联网场景定制高效的目录组织结构,并与 Apache Hadoop、Spark、Flink 等大数据系统无缝打通;在边缘端,提供轻量化的 TsFile 管理能力,端上的数据写到本地 TsFile,并提供一定的基础查询能力,同时支持将 TsFile 数据同步到云端。
7348 102
|
JSON NoSQL Redis
Redis 作为向量数据库快速入门指南
Redis 作为向量数据库快速入门指南
2726 1
|
XML Java 数据库连接
【项目问题解决】 java.lang.IllegalArgumentException: XML fragments parsed
**问题摘要:** Java 应用在执行MyBatis映射时抛出`IllegalArgumentException`,指出XML片段缺少`com.xxx.xxx.xxx.xxx.dao.SingleApasInfoDao.selectListCondition`的值。此异常暗示XML映射文件存在错误或未定义指定方法。解决策略包括检查映射文件中标签的完整性与属性设置,修复可能的XML格式错误,以及确保使用的XML解析器支持所需特性,如有必要,升级解析器。
1251 1
|
存储 SQL JSON
Databend 的安装配置和使用
Databend 的安装配置和使用
828 1
|
Java
Java8中List转Map的几种方式
Java8中List转Map的几种方式
1307 1
|
XML Java API
Spring Boot中使用集成swagger-bootstrap-ui
Spring Boot中使用集成swagger-bootstrap-ui
842 0

热门文章

最新文章