首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

spring security - 有没有办法在我的应用程序中获取会话注册表(没有明确定制concurrentFilter)

在 Spring Security 中,获取会话注册表的方法可以通过 SecurityContextHolder 类来实现。该类提供了几个方法来获取和操作当前会话,包括获取当前会话、获取指定会话、替换指定会话、获取当前请求、获取当前登录用户、获取请求路径等。

在应用程序中获取会话注册表的方法如下:

代码语言:java
复制
SecurityContextHolder.getContext().getAuthentication()

如果没有明确指定会话,则可以使用以下方法来获取默认会话:

代码语言:java
复制
SecurityContextHolder.getContext().getSession()

如果没有指定会话,则可以使用以下方法来获取默认会话:

代码语言:java
复制
SecurityContextHolder.getContext().getSession()

需要注意的是,在应用程序中获取会话注册表时,需要特别注意线程安全的问题。因为 SecurityContextHolder 类的对象是在 Spring 应用程序运行时创建的,所以可能存在多个线程同时访问该对象的情况。因此,需要使用同步机制来确保线程安全。

另外,在获取会话注册表时,需要获取的是当前会话,而不是指定会话。如果应用程序中指定了会话,则应该使用 SecurityContextHolder.getContext().getAuthentication().getPrincipal() 来获取当前会话。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【SpringSecurity系列(十七)】Spring Security 如何处理 Session 共享

,下次又来一个请求,这个请求被转发到 Tomcat B 上,此时再去 Session 获取数据,发现没有之前数据。...Redis 基本信息;Spring Security 为了简化,就将用户名密码直接配置 application.properties 中了,最后再配置一下项目端口号。...Boot 将以集群方式启动 ,为了获取每一个请求到底是哪一个 Spring Boot 提供服务,需要在每次请求时返回当前服务端口号,因此这里注入了 server.port 。...该文中,我们提到,会话注册表维护默认是由 SessionRegistryImpl 来维护,而 SessionRegistryImpl 维护就是基于内存维护。...如果大家没有 SSM 架构中用过 Spring Session ,可能不太好理解我们 Spring Boot 中使用 Spring Session 有多么方便,因为 SSM 架构Spring

1.1K10

不掌握这些内置Filter 你就学不会 Spring Security

filterToOrder 获取自己序号,如果没有直接获取到序号通过递归获取父类注册表序号作为自己序号,序号越小优先级越高。...根据sessionid从SessionRegistry获取SessionInformation,从SessionInformation获取session是否过期;没有过期则更新SessionInformation...这是Spring MVC Java配置和XML 命名空间 CORS 配置替代方法, 仅对依赖于spring-web应用程序有用(不适用于spring-webmvc)或 要求javax.servlet.Filter...认证逻辑处理完毕后,从缓存获取最开始资源请求进行再次请求。...而且它们顺序是既定。 只有你了解这些过滤器你才能基于业务深度定制 Spring Security

4.2K40

Spring Security 常见过滤器梳理

Spring Security,作为Java平台上一个强大且灵活安全框架,为Web应用程序提供了全面的安全解决方案,包括认证、授权、加密、会话管理等。...本文将深入介绍Spring Security中一些关键过滤器功能及其安全体系角色。...一 引言 Spring Security过滤器链遵循Servlet规范,通过应用启动时注册一系列过滤器来拦截HTTP请求,每个过滤器都有明确职责,共同构建起一套完整安全防护体系。...CsrfFilter:提供跨站请求伪造(CSRF)防护机制。 四 配置与定制 Spring Security提供了高度可定制配置方式,通过Java配置类或XML配置来调整过滤器链。...随着Spring Security不断演进,更多高级安全特性被引入,使得它成为现代Web应用安全架构不可或缺一部分。

13110

【SpringSecurity】Spring Security 和Shiro对比

Spring SecuritySpring 家族一个安全管理框架。...它是用于保护基于Spring应用程序实际标准; Spring Security是一个框架,致力于为Java应用程序提供身份验证和授权。... Java 生态,目前有 Spring Security 和 Apache Shiro 两个安全框架,可以完成认证和授权功能。 我们先来学习下 Spring Security 。...它是保护基于Spring应用程序事实标准。 Spring Security是一个专注于为 Java 应用程序提供身份验证和授权框架。...或者细粒度验证某个用户对某个资源是否具有某个权限; Session Manager:会话管理,即用户登录后就是一次会话没有退出之前,它所有信息都在会话会话可以是普通JavaSE环境,也可以是如

19530

开源鉴权新体验:多功能框架助您构建安全应用

该项目的核心优势和特点包括: 简单易用:无需实现接口或创建配置文件,只需要调用简洁静态代码即可完成会话登录认证。 功能丰富:集成了多种功能模块,如踢人下线、路由拦截鉴权、记住模式等。...spring-projects/spring-security[3] Stars: 7.9k License: Apache-2.0 Spring Security 是一个为 Spring IO 平台提供安全服务项目...该项目具有以下核心优势: 提供了丰富安全功能 可以轻松集成到基于 Spring 框架开发应用程序 支持各种认证和授权机制,包括表单登录、OAuth、JWT 等 提供了细粒度权限控制和访问管理功能...使用 Jasny SSO 时,各方包括客户端、代理商和服务器之间有明确角色划分。 该项目提供了 Server 类和 Broker 类来处理与会话管理相关功能。...Server 类负责维护经过认证会话,并为每个代理商生成唯一标识符以及校验码等信息。 Broker 类则负责向 Server 发送请求并获取已认证用户信息。

35410

Spring Security 之防漏洞攻击

ℹ️ 有关攻击详细描述,可见该博客:Login/logout CSRF: Time to reconsider? CSRF 和会话超时 通常,预期CSRF令牌存储会话。...这意味着一旦会话到期,服务器将找不到预期CSRF令牌并拒绝HTTP请求。以下是一些解决办法: 减少超时最佳方法是表单提交时使用JavaScript请求CSRF令牌。...另一种选择是使用一些JavaScript,让用户知道会话即将到期。用户可以单击按钮继续并刷新会话。 最后,预期CSRF令牌可以存储cookie。这允许预期CSRF令牌会话结束后继续使用。...对于给multipart/form-data请求进行CSRF保护,有两种办法Body中放置CSRF令牌 在请求主体包含实际CSRF令牌。...HTTP Headers 有许多HTTP响应头可用于提高web应用程序安全性。这里专门介绍Spring Security明确支持各种HTTP响应头。

2.3K20

《springboot实战》

spring jira创建了一个功能需求:spring框架中支持无容器web应用程序 2013年:开始研发该需求 2014年:springboot 1.0.0版本发布 2014年:springboot...4. sprinboot不是什么 不是应用服务器:应用程序里嵌入了一个servlet容器 没有引入任何形式代码生成,只是利用了条件化配置特性以及maven传递依赖解析实现自动配置 二....原理: 利用了spring条件化配置,允许配置存在于应用程序满足某些特定条件之前都会忽略这个配置 2....使用spring security自动配置条件 classpath要有WebSecurityConfiguerAdapter类 没有自动配置WebSecurityConfigureAdapter实体类...利用了spring4提供条件配置功能,根据某些条件判断实现自动配置。所说条件包括:classpath里面有没有依赖某个类,spring有没有配置了特定bean等等。

1.2K61

SpringSecurity6 | 委派筛选器代理和过滤器链代理

本质上来说DelegatingFilterProxy就是一个Filter,其间接实现了Filter接口,但是 doFilter其实调用Spring 容器获取代理Filter实现类delegate...看到这些参数,不知道大家有没有想到之前我们最开始学习JavaWeb时候,最初始配置过滤器,就是一个web.xml文件中进行双标签配置,为了让大家更清楚明白,我们下面写一个简单xml配置。...这样可以代码明确地表达出对目标bean名称依赖性,以避免潜在空指针异常。...Spring工厂过滤器是没有办法拦截Http请求并进行干预,但是原生Filter就可以做到直接拦截Http请求并进行干预,就比如DelegatingFilterProxy,所以借助它,Spring...核心安全过滤器调度器: Spring Security框架,FilterChainProxy可以看作是核心安全过滤器调度器,它负责将请求交给正确安全过滤器链进行处理,从而实现认证、授权、会话管理等安全操作

22520

Spring Security 和 Shiro 该如何选择?

(访问控制),支持细粒度签权; 支持一级缓存,以提升应用程序性能; 内置基于 POJO 企业会话管理,适用于 Web 以及非 Web 环境; 异构客户端会话访问; 非常简单加密 API; 不跟任何框架或者容器捆绑...Spring Security架构上将认证与授权分离,并提供了扩展点。它是一个轻量级安全框架,它确保基于Spring应用程序提供身份验证和授权支持。...Spring这一套,用Spring Security觉得更合适一些,他们本身就是一套东西,顺畅,可能略微复杂一些,但是学会了就是自己。...如果项目没有使用Spring这一套,不用考虑,直接Shiro。 同时要考虑团队成员技术栈,更加熟悉使用哪个,选型上,也要尽量避免给同行增加不必要学习成本!...Spring OAuth2 授权服务器配置详解 使用 @Transactional 时常犯N种错误 技术交流群 最近有很多人问,有没有读者交流群,想知道怎么加入。

41820

微服务项目中,Spring Security 比 Shiro 强在哪?

虽然目前 Spring Security 一片火热,但是 Shiro 市场依然存在,今天就来稍微说一说这两个框架,方便大家实际项目中选择适合自己安全管理框架。...所以接下来主要结合自己经验来说一说这两个框架优缺点,没有提到地方也欢迎大家留言补充。 1....Spring Boot ,通过自动化配置 starter 已经极大简化了 Spring Security 配置,我们只需要做少量定制就可以实现认证和授权了,这一点,大家可以参考之前连载 Spring...安全有时候是很复杂,甚至是痛苦,但它没有必要这样。框架应该尽可能掩盖复杂地方,露出一个干净而直观 API,来简化开发人员应用程序安全上所花费时间。...Session Management:管理用户特定会话,即使非 Web 或 EJB 应用程序。 Cryptography:通过使用加密算法保持数据安全同时易于使用。

4K51

Spring Security最难地方就是这个了

本篇摘自胖哥最新基于Spring Security 5.6.xSpring Security干货》教程。...extends Filter> beforeFilter); // 在过滤器链注册一个过滤器,该过滤器必须在内置注册表 FilterOrderRegistration H addFilter...这两个方法有着明确先后执行顺序。一次构建内可能有多个SecurityConfigurer,只有全部init逐个执行完毕后才会逐个执行configure方法。...这个类是做定制化配置一个重要入口之一,如果你想精通Spring Security,这个类一定要掌握。 ❝一句话,能“杀”自己。...你可以各个生命周期阶段进行一些必要操作。 ❝一句话,所有的配置都由我来进行适配。 总结 我们把Spring Security整个配置构建体系拆分了来看会简单多一些。

1.2K30

Spring Security CSRF 防御源码解析

主要和大家聊了 Spring Security 处理该问题几种办法。 今天松哥来和大家简单看一下 Spring Security ,CSRF 防御源码。...松哥手把手带你入门 Spring Security,别再问密码怎么解密了 手把手教你定制 Spring Security 表单登录 Spring Security 做前后端分离,咱就别做页面跳转了!...统统 JSON 交互 Spring Security 授权操作原来这么简单 Spring Security 如何将用户数据存入数据库?...你都不知道自己系统有多安全! 什么是会话固定攻击?Spring Boot 要如何防御会话固定攻击? 集群化部署,Spring Security 要如何处理 session 共享?...接下来获取请求传递来 CSRF 参数,先从请求头中获取获取不到再从请求参数获取

2.3K20

快速上手JHipster (Java Hipster)创建应用

该JHipster注册表是用来管理你在运行应用程序开源工具。 当使用微服务架构时这是必需(这就是为什么这个问题只在生成巨石时才被问到)。...这目前BETA测试(而不是Windows上运行),但这最终会比运行内存更好,因为应用程序重新启动时您不会丢失数据。...使用Hazelcast进行群集HTTP会话 默认情况下,JHipster仅使用HTTP会话来存储Spring Security身份验证和授权信息。当然,您可以选择将更多数据放入HTTP会话。.../java 目录有Spring Boot 配置类config包,JHipster使用SpringJava 配置,没有XML配置。...repostiory包Spring Data仓储. 通常@Service-beans 服务层. 这些服务通常是配置为事务 安全业务对象。

7K190

JavaEE遗漏10个最重要安全控制

2.损坏验证和会话管理 JavaEE支持身份验证和会话管理,但这里有很多容易出错地方。你必须确保所有经过验证流量都通过SSL,没有例外。...3.跨站点脚本攻击(XSS) XSS发生在当JavaEE开发人员从HTTP请求获取不可信信息,并把它放到HTTP响应,而没有适当上下文输出编码时候。...8.跨站点伪造请求(CSRF) 每个改变状态端点需要验证请求有没有被伪造。开发人员应该在每个用户会话中放入随机令牌,然后当请求到达时候验证它。...许多广泛使用Java库都有一些已知漏洞,会让web应用程序被完全颠覆。解决办法是及时更新库。不要只运行单一扫描,因为新漏洞每天都在发布。...例如,假设你代码获取了一个参数值,用base64解码它,再存储于map,把map放到数据bean,再将bean存储到一个会话属性JSP获取bean值,并使用EL将这个值插入到网页。

769100

一个接口是如何在Keycloak和Spring Security之间执行

在上一篇我们对Keycloak常用配置进行了熟悉,今天我们来对Keycloak适配Spring Security执行流程做一个分析,简单了解一下其定制一些Spring Security过滤器。.../admin/foo执行流程 适配了Keycloak和Spring SecuritySpring Boot应用编写了一个/admin/foo接口并对这个接口进行了权限配置: @Override...这时需要看看/admin/foo有没有缓存起来,因为登录完还要去执行/admin/foo逻辑。...如果Spring Security没有存Session或者Cookie没有就会把/admin/foo缓存到Cookie,然后重定向到Keycloak授权页: http://localhost:8011...补充 其实要想搞清楚任何一个框架运行流程,最好办法就是从日志打印中提炼一些关键点。Keycloak Spring Security Adapter运行流程如果你想搞清楚,最好是自己先试一试。

1.9K20

基于 Spring Security OAuth2和 JWT 构建保护微服务系统

尤其是前后端完全分离之后,我们用户信息不一定存在于 Session 会话。 ?...Spring Security是一套安全框架,可以基于RBAC(基于角色权限控制)对用户访问权限进行控制,核心思想是通过一系列filter chain来进行拦截过滤,以下是ss默认内置过滤器列表...shiro没用过,据说是比较轻量级,相比较而言spring security确实架构比较复杂。 OAuth2与SSO 首先要明确一点,OAuth2并不是一个SSO框架,但可以实现SSO功能。...我们先来看一下OAuth2token技术有没有什么痛点,相信从之前介绍你也发现了,token技术最大问题是不携带用户信息,且资源服务器无法进行本地验证,每次对于资源访问,资源服务器都需要向认证服务器发起请求...这种场景下,考虑高可用,更加推荐采用分布式session机制,现在已经有很多成熟框架可供选择了(比如spring session)。

1.1K10

Spring Security

,那么root和zhang用户都能访问; 我们还可以定制自己登录页面,用于替换Spring Security内置登录页面,这块需要定制html页面,本文不再详述,比较简单,可以参考formLogin...注意:本案例,是使用浏览器进行测试,而且没有html页面,所以使用浏览器发起post请求比较困难,那么使用get请求发起可以吗?...六、记住功能 当我们没有开启记住功能时候,登录root用户后,如果关掉浏览器,重新打开网址,会发现登录已经退出了,这是因为登录信息只在当前会话有效。...以上是关于Spring Security基本使用方法,使用数据库及其它特性将会在后面的文章予以说明。 七、会话管理 以上例子,认证和授权都是Spring Security自动进行。...但是有的时候我们需要管理会话,比如从会话获取用户姓名、用户权限信息;会话策略选择以及会话超时设置等。

2K00
领券