`

shiro web整合报错 SessionContext must be an HTTP compatible implementation

 
阅读更多

 

解决方案:

 

将<filter><filter-name>shiroFilter</filter-name><filter>在web.xml的位置

移动到所有涉及的URL过滤的filter前面即可

 

java.lang.IllegalArgumentException: SessionContext must be an HTTP compatible implementation.
	at org.apache.shiro.web.session.mgt.ServletContainerSessionManager.createSession(ServletContainerSessionManager.java:103)
	at org.apache.shiro.web.session.mgt.ServletContainerSessionManager.start(ServletContainerSessionManager.java:64)
	at org.apache.shiro.mgt.SessionsSecurityManager.start(SessionsSecurityManager.java:121)
	at org.apache.shiro.subject.support.DelegatingSubject.getSession(DelegatingSubject.java:336)
	at org.apache.shiro.subject.support.DelegatingSubject.getSession(DelegatingSubject.java:314)
	at org.apache.shiro.mgt.DefaultSubjectDAO.mergePrincipals(DefaultSubjectDAO.java:182)
	at org.apache.shiro.mgt.DefaultSubjectDAO.saveToSession(DefaultSubjectDAO.java:163)
	at org.apache.shiro.mgt.DefaultSubjectDAO.save(DefaultSubjectDAO.java:144)
	at org.apache.shiro.mgt.DefaultSecurityManager.save(DefaultSecurityManager.java:383)
	at org.apache.shiro.mgt.DefaultSecurityManager.createSubject(DefaultSecurityManager.java:350)
	at org.apache.shiro.mgt.DefaultSecurityManager.createSubject(DefaultSecurityManager.java:183)
	at org.apache.shiro.mgt.DefaultSecurityManager.login(DefaultSecurityManager.java:283)
	at org.apache.shiro.subject.support.DelegatingSubject.login(DelegatingSubject.java:257)
	at com.user.action.UserAction.doLogin(UserAction.java:64)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441)
	at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243)
	at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
	at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
	at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)
	at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
	at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594)
	at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
	at java.lang.Thread.run(Unknown Source)

 

解决方案:

 

将<filter><filter-name>shiroFilter</filter-name><filter>在web.xml的位置

移动到所有涉及的URL过滤的filter前面即可

 

 

分享到:
评论

相关推荐

    Shiro整合springboot报错代码

    在整合Apache Shiro框架与Spring Boot的过程中,可能会遇到各种错误,这些错误可能源自配置不当、依赖冲突或理解上的误区。本文将深入探讨Shiro与Spring Boot整合时可能出现的问题及其解决方案。 1. **Shiro的基本...

    springboot +shiro+redis实现session共享(方案二)1

    本文档旨在介绍如何使用 Spring Boot、Shiro 和 Redis 实现分布式 session 共享,以解决 Web 应用程序的登录 session 统一问题。 2. 相关依赖 在实现 session 共享之前,需要在项目中引入相关依赖项,包括: * ...

    shiro+redis做session管理

    将Shiro与Redis整合进行Session管理的过程主要包括以下几个步骤: 1. **配置RedisSessionDAO**:Shiro通过SessionDAO(Session数据访问对象)来存储和读取Session。我们需要自定义一个实现`org.apache.shiro....

    springboot整合shiro,redis缓存session

    为实现Web应用的分布式集群部署,要解决登录session的统一。本文利用shiro做权限控制,redis做session存储,结合spring boot快速配置实现session共享。

    SpringBoot整合Shiro示例实现动态权限加载更新+Session共享+单点登录

    SpringBoot整合Shiro示例实现动态权限加载更新+Session共享+单点登录 SpringBoot整合Shiro示例实现动态权限加载更新+Session共享+单点登录 SpringBoot整合Shiro示例实现动态权限加载更新+Session共享+单点登录 ...

    shiro和web整合实例

    在本实例中,我们将探讨如何将 Shiro 整合到 Web 项目中,以实现全面的安全管理。 首先,Shiro 的核心组件包括 SecurityManager、Subject、Realms 和 Caches。SecurityManager 是 Shiro 的顶级组件,负责管理 ...

    struts2和shiro完美整合解决方案

    Struts2和Shiro是两个在Java Web开发中非常重要的框架。Struts2是一个MVC框架,用于构建可维护、可扩展的Web应用程序,而Apache Shiro则是一个强大的安全管理框架,处理认证、授权、会话管理和加密等安全相关任务。...

    shiro-redisson基于Redis的ShiroCache和Session实现

    `shiro-redisson` 模块就是为了解决这个问题,将 Shiro 的缓存(Cache)和会话(Session)管理功能与 Redis 结合,实现了基于 Redis 的分布式解决方案。 1. **Redisson 库的介绍** Redisson 是一个全面的 Redis ...

    shiro和web项目整合代码下载

    在Web项目中整合Shiro,能够帮助开发者快速构建出具备安全控制的系统。"shiro和web项目整合代码下载"这个主题表明我们将探讨如何在Spring MVC框架下集成Apache Shiro,以及实现一些常见的安全功能。 首先,Shiro的...

    shirodemo整合spring+springmvc+shiro

    《整合Shiro、Spring与SpringMVC:打造高效安全控制框架》 在现代Java Web开发中,安全性是不可或缺的一部分。Apache Shiro是一个强大且易用的Java安全框架,提供了认证、授权、加密和会话管理功能,使得开发者能够...

    shiroweb案例

    **Shiro Web 框架基础与案例解析** Apache Shiro 是一个强大且易用的 Java 安全框架,提供身份认证、授权、会话管理和加密等核心功能,广泛应用于 Web 开发中。"shiroweb案例"是针对 Shiro 在 Web 开发中的应用进行...

    SSM-Shiro.zip_shiro ssm 整合_ssm web shiro%2_ssm+shiro_ssm590.com_

    SSM-Shiro.zip是一个关于将Apache Shiro与Spring、Spring MVC和MyBatis(简称SSM)框架整合的示例项目。这个项目演示了如何在Web应用中集成Shiro进行权限管理和用户认证,以实现安全控制。以下是关于SSM与Shiro整合...

    Shiro与SSM整合(内含详细文档介绍)

    Apache Shiro 和 Spring Security (SSM) 是两个广泛使用的Java安全框架,它们分别提供认证、授权、会话管理和加密等功能,以确保Web应用程序的安全性。本资料包将深入讲解如何将Shiro与SSM整合,以实现更高效、灵活...

    spring shiro整合

    在IT行业中,Spring Shiro整合是一项常见的安全框架搭建技术,主要应用于Java Web开发。Spring MVC作为主流的MVC框架,负责处理HTTP请求和业务逻辑,MyBatis则为持久层框架,负责数据库交互,而Apache Shiro则是一个...

    shiro整合ssm的全部jar包

    在Java开发中,Shiro常与Spring(SSM:Spring、SpringMVC、MyBatis)框架进行整合,以实现更高效的安全管理。本文将详细介绍如何整合Shiro与SSM,并探讨涉及的相关技术。 首先,我们来看`ehcache-core`这个标签。...

    ssm+maven+shiro完美整合可跑

    SSM(Spring、SpringMVC、MyBatis)与Maven和Shiro的整合是Java Web开发中的常见实践,主要用于构建高效、灵活的企业级应用程序。这个整合项目名为"ssm+maven+shiro完美整合可跑",意味着它提供了一个完整的、可以...

    springboot+shiro+redis整合

    将SpringBoot、Shiro和Redis整合,主要目的是利用Shiro进行用户认证和授权,而Redis作为Session的共享存储,解决分布式环境下的会话一致性问题。以下是整合步骤: 1. **引入依赖**:在SpringBoot的pom.xml文件中...

    实际WEB项目整合 Shiro 以及 LDAP 方案.docx

    本文档将详细介绍如何在实际 Web 项目中整合 Shiro 和 LDAP 以实现高效、安全的身份验证。 1. 安全框架简介 1.1 Spring Security Spring Security 是一个全面的安全管理框架,它为 Java 应用提供了身份验证、授权...

    shiro+redis session共享实现

    首先,Shiro框架的Session管理是基于内存的,这意味着默认情况下,每个Web服务器都会独立维护其自身的session数据。但在分布式环境中,用户可能会在多个服务器之间跳转,这就需要一个统一的session存储机制,以便...

    SSH整合Shiro源码

    **SSH整合Shiro源码详解** 在Web应用开发中,安全性是至关重要的。SSH(Spring、Struts2、Hibernate)和Apache Shiro都是常见的Java安全框架。SSH是用于构建MVC架构的开源框架,而Shiro则专注于身份验证、授权和...

Global site tag (gtag.js) - Google Analytics