Spring Security 4 配置 FILTER_SECURITY_INTERCEPTOR 过滤器后 session会话管理失效!

brockpeng brockpeng 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
各位大神,我配置了一个过滤器后,session的会话失效,在浏览器的控制台里将session清空,根本不会跳转到登陆界面。
请问如何处理啊。
以下是我的配置文件。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:security="http://www.springframework.org/schema/security"
xsi:schemaLocation="http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-4.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">
<description>Spring 安全权限配置</description>
<!-- 不拦截静态资源 -->
<security:http pattern="/Images/**" security="none"/>
<security:http pattern="/Style/**" security="none"/>
<security:http pattern="/JScript/**" security="none"/>
<security:http pattern="/error*" security="none"/>
<!-- <security:debug/> -->
<security:global-method-security access-decision-manager-ref="accessDecisionManager" />
<security:http auto-config="true" use-expressions="false">
<security:headers>
<security:frame-options disabled="true"/>
</security:headers>
<security:intercept-url pattern="/login*" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<security:intercept-url pattern="/**" access="IS_AUTHENTICATED_FULLY"/>
<security:form-login login-page="/login" password-parameter="password"
username-parameter="userId" default-target-url="/index"/>
<security:logout delete-cookies="JSESSIONID" invalidate-session="false"
logout-url="/logout" logout-success-url="/login"/>
<security:session-management session-authentication-error-url="/error" invalid-session-url="/login" session-fixation-protection="newSession">
<security:concurrency-control max-sessions="1"/>
</security:session-management>
<security:custom-filter ref="filterSecurityInterceptor" before="FILTER_SECURITY_INTERCEPTOR"/>
</security:http>
<bean id="sessionRegistry"
class="org.springframework.security.core.session.SessionRegistryImpl" />
<!-- 自定义过滤器 -->
<bean id="filterSecurityInterceptor" class="org.springframework.security.web.access.intercept.FilterSecurityInterceptor">
<property name="accessDecisionManager" ref="accessDecisionManager" />
<property name="authenticationManager" ref="authenticationManager" />
<property name="securityMetadataSource">
<security:filter-security-metadata-source>
<security:intercept-url pattern="/**" access="IS_AUTHENTICATED_FULLY"/>
</security:filter-security-metadata-source>
</property>
</bean>
<!-- 自定义拒绝访问的实现 -->
<bean id="accessDecisionManager" class="com.proj.security.AccessDecisionManagerImpl" />

<security:authentication-manager alias="authenticationManager">
<security:authentication-provider ref="daoAuthenticationProvider" />
</security:authentication-manager>

<bean id="daoAuthenticationProvider" class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
<property name="hideUserNotFoundExceptions" value="false" />
<property name="userDetailsService" ref="userService" />
<property name="passwordEncoder" ref="passwordEncoder" />
</bean>
<bean id="passwordEncoder" class="org.springframework.security.authentication.encoding.Md5PasswordEncoder" />
<bean id="userService" class="com.proj.security.UserDetailServiceImpl" />
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<!-- <property name="basename" value="org/springframework/security/messages_zh_CN" /> -->
<property name="basename" value="com/proj/security/messages" />
<property name="defaultEncoding" value="UTF-8" />
</bean>
</beans>
...全文

相关推荐

Java 最常见200 面试必备

不错的资源,需要的朋友下载看看

啊申

SpringBoot实战:从零搭建仿知乎问答社区的技术架构与核心实现

在Java企业级开发领域,SpringBoot以其“约定大于配置”的理念和快速启动能力,成为构建Web应用的主流框架。其核心原理在于通过自动配置和Starter依赖,简化了传统Spring应用的繁琐配置,使开发者能聚焦于业务逻辑实现。这一技术价值在于大幅提升了开发效率与项目可维护性,尤其适用于需要快速迭代的互联网应用,如内容社区、电商平台和社交网络。应用场景广泛覆盖用户系统、内容管理和实时交互等模块。本文以构建一个问答社区为例,深入探讨了如何运用SpringBoot整合MyBatis-Plus、Redis和

weixin_34074740

SpringBoot实战:JWT与BCrypt构建安全认证体系

在Web应用开发中,用户认证与密码安全是保障系统安全性的基石。其核心原理在于通过可靠的机制验证用户身份并保护敏感凭证。JWT(JSON Web Token)作为一种无状态认证方案,通过数字签名生成自包含令牌,有效解决了分布式系统中的会话管理难题,提升了系统的扩展性与灵活性。而密码存储则需依赖单向哈希函数,传统的MD5算法因彩虹表攻击和计算速度过快等问题已不再安全,现代实践普遍采用加盐慢哈希技术。BCrypt作为当前Java领域的首选密码编码器,通过内置盐值和自适应成本因子,实现了强大的抗暴力破解能力。本文将

吃素的小动物

SpringBoot与Shiro构建可复用权限系统:从RBAC模型到前后端全链路实践

权限管理是后台管理系统的核心模块,其本质是解决资源访问控制问题。基于角色的访问控制(RBAC)模型通过用户、角色、权限的层级关系,实现了权限的集中管理与分配,有效提升了系统的安全性与可维护性。在Java技术栈中,Apache Shiro作为一个轻量级安全框架,通过与SpringBoot的深度整合,为开发者提供了认证、授权、会话管理等一站式安全解决方案。这种组合在电商、CRM、OA等各类中后台系统中具有极高的技术价值,能够应对多用户、多角色的复杂权限场景。本文以SpringBoot与Shiro为基础,详细阐述

weixin_34194087

Shiro-550漏洞攻防解析:从反序列化原理到ShiroAttack2实战利用

Java反序列化漏洞是Web安全领域的经典威胁,其原理在于应用对不可信数据执行了不安全的反序列化操作,导致攻击者能够构造恶意对象链(Gadget Chain)在目标系统上执行任意代码。这项技术的核心价值在于其利用门槛相对较低,但危害极大,常被用于远程命令执行、权限提升和持久化控制。在Java Web应用框架中,Apache Shiro因其广泛使用而成为重点攻击目标,其中Shiro-550漏洞(涉及RememberMe功能的默认密钥与不安全反序列化)尤为突出。针对此漏洞的自动化利用工具,如ShiroAttac

weixin_33923762
评论 2
收藏 已收藏
分享
返回顶部
brockpeng
Java EE 67,535 成员 225,843 内容