集成Shiro和WebSocket接口时遇到的问题
Encountered problems when integrating Shiro and WebSocket interfaces
如题,我在Shiro管理的Springboot项目中开发WebSocket时,需要在socket接口获取当前登录用户的信息
public static Subject getSubjct() {
return SecurityUtils.getSubject();
}
此行错误:SecurityUtils.getSubject();
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)
at com.runtime.system.util.ShiroUtils.getSubjct(ShiroUtils.java:18)
at com.runtime.system.util.ShiroUtils.getUser(ShiroUtils.java:22)
常规Api界面不存在该问题。我感到很苦恼。请帮帮我,谢谢!
开箱即用的 Shiro 不知道如何处理 运行 您的异步请求的线程。
您需要将数据与异步请求相关联,通常是 Subject,然后通过 Runnable/Callable:
执行您需要执行的操作
Subject subject = <get the subject from your async context>;
subject.execute( <your runnable> );
如题,我在Shiro管理的Springboot项目中开发WebSocket时,需要在socket接口获取当前登录用户的信息
public static Subject getSubjct() {
return SecurityUtils.getSubject();
}
此行错误:SecurityUtils.getSubject();
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)
at com.runtime.system.util.ShiroUtils.getSubjct(ShiroUtils.java:18)
at com.runtime.system.util.ShiroUtils.getUser(ShiroUtils.java:22)
常规Api界面不存在该问题。我感到很苦恼。请帮帮我,谢谢!
开箱即用的 Shiro 不知道如何处理 运行 您的异步请求的线程。
您需要将数据与异步请求相关联,通常是 Subject,然后通过 Runnable/Callable:
执行您需要执行的操作Subject subject = <get the subject from your async context>;
subject.execute( <your runnable> );