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

Spring Security当前不存在HttpSession

Spring Security是一个用于身份验证和授权的框架,它提供了一种灵活且可扩展的方式来保护应用程序的安全性。在Spring Security中,HttpSession是一个用于在Web应用程序中存储用户会话信息的对象。然而,从Spring Security 5.0版本开始,官方不再推荐使用HttpSession来存储用户的认证信息。

相反,Spring Security引入了一种基于Token的身份验证机制,称为"Bearer Token"。Bearer Token是一种无状态的身份验证方式,它将用户的认证信息存储在一个令牌中,并将该令牌发送到客户端。客户端在后续的请求中将该令牌作为身份验证凭证进行传递。这种方式避免了使用HttpSession来存储用户信息,提高了系统的可扩展性和性能。

在Spring Security中,可以使用一些相关的类和配置来实现基于Token的身份验证。例如,可以使用JwtTokenStore类来生成和验证JWT(JSON Web Token),并使用JwtAuthenticationFilter类来拦截请求并进行身份验证。此外,还可以使用@EnableWebSecurity注解和WebSecurityConfigurerAdapter类来配置Spring Security的行为。

总结起来,Spring Security当前不再推荐使用HttpSession来存储用户的认证信息,而是引入了基于Token的身份验证机制。这种方式提供了更好的可扩展性和性能,并且可以通过相关的类和配置来实现。

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

相关·内容

Spring Security 实战干货:如何获取当前用户信息

在某些场景中我们需要获取当前的用户是谁?如果你使用了Spring Secrity作为安全框架你可以通过以下手段获取当前用户。...Principal java.security.Principal对象也可以获取当前的用户信息,在Spring Security中该对象表现为Authentication对象,如果我们在Spring MVC...Security 4.0提供的注解@AuthenticationPrincipal来获取当前用户的自定义UserDetails对象。...Security 5 提供了一个新的注解@CurrentSecurityContext来获取当前用户的安全上下文,你可以: @GetMapping("/currentusername") public...总结 今天总结了如何在Spring Security获取当前用户的各种方法,它们的各自场景都略有不同,你可以根据这些罗列选择最适合你的应用场景。

6.3K20
  • Spring Security

    一、简介 Spring Security是一个高度自定义的安全框架。利用Spring IoC/DI和AOP功能,为系统提供了声明式安全访问控制功能,减少了为系统安全而编写大量重复代码的工作。...启动项目,Spring Security默认就开启了,此时访问localhost:8080/index就会被Spring Security拦截,跳转到内置的登录页面要求登录。...如果我们不希望使用默认的用户密码,可以在配置文件中指定一个,如此Spring Security就会使用我们指定的,而不会使用默认的了。...spring.security.user.name=zhangxun spring.security.user.password=123123 三、自定义认证逻辑 当我们开启自定义认证逻辑后,上面的默认用户和配置文件中的用户就不生效了...以上是关于Spring Security的基本使用方法,使用数据库及其它特性将会在后面的文章中予以说明。 七、会话管理 在以上例子中,认证和授权都是Spring Security自动进行的。

    2K00

    【第九篇】SpringSecurity核心过滤器-SecurityContextPersistenceFilter

    SpringSecurity的核心jar包,认证和授权的核心代码都在这里面 spring-security-config 如果使用Spring Security XML名称空间进行配置或Spring...Security的Java configuration支持,则需要它 spring-security-web 用于Spring Security web身份验证服务和基于url的访问控制 spring-security-test...测试单元 1.SecurityContextHolder   首先来看看在spring-security-core中的SecurityContextHolder,这个是一个非常基础的对象,存储了当前应用的上下文...接下来将看到,Spring Security中的认证大都返回一个 UserDetails的实例作为principa。...// 如果HttpSession不存在SecurityContext对象就创建一个 // SecurityContextHolder.createEmptyContext(); // 默认是

    65940

    Spring SecuritySpring Security 前后端分离认证

    我们初步引入了Spring Security,并使用其默认生效的HTTP基本认证来保护URL资源,本章我们使用表单认证来保护URL资源。...其中,successHandler()方法带有一个Authentication参数,携带当前登录用户名及其角色等信息;而failureHandler()方法携带一个AuthenticationException...; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity...; import org.springframework.security.core.Authentication; import org.springframework.security.core.AuthenticationException...; import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.AuthenticationFailureHandler

    48840

    项目之通过Spring Security获取当前登录的用户的信息(6)

    基于Spring JDBC的事务处理,只需要在业务方法之前添加@Transactional注解即可。...在用户登录时,应该读取用户的权限,以完成Spring Security在验证过程中的授权,以保证后续在进行某些访问时,能给出正确的判断,使得某些用户可以执行某些操作,而另一些用户可能因为没有权限而不能执行这些操作...通过Spring Security获取当前登录的用户的信息 当用户成功登录后,需要获取用户的信息才可以执行后续的操作,例如获取某用户的权限、获取某用户的问题列表、获取某用户的个人信息等等。...Spring Security提供了简便的获取当前登录用户信息的做法,在控制器的处理请求的方法中,添加Authentication类型的参数,或添加Principal类型的参数,均可获得当前登录用户的信息...注意:由于父类User中不存在无参数构造方法,所以不可以使用Lombok中的@Data注解,只能按需添加@Setter、@Getter等注解。

    1.9K10

    Spring Security源码分析二:Spring Security授权过程

    Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。...它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入...前言 本文是接上一章Spring Security源码分析一:Spring Security认证过程进一步分析Spring Security用户名密码登录授权是如何实现得; 类图 ?...Security则为当前的SecurityContextHolder中添加一个Authenticaiton 的匿名实现类AnonymousAuthenticationToken; public void...Spring Security默认使用AffirmativeBased实现 AccessDecisionManager 的 decide 方法来实现授权 public void decide(Authentication

    95720

    Spring Security安全

    安全 引入Spring Security org.springframework.boot spring-boot-starter-security... 如果添加了Spring Security的依赖,那么web应用默认对所有的HTTP路径(也称为终点,端点,表示API的具体网址)使用’basic’...默认的AuthenticationManager只有一个用户('user’的用户名和随机密码会在应用启动时以INFO日志级别打印出来),如下: Using default security password...对登录的用户名/密码进行配置,有三种不同的方式: 在 application.properties 中进行配置 通过 Java 代码配置在内存中 通过 Java 从数据库中加载 在配置文件中配置: spring.security.user.name...=javaboy spring.security.user.password=123 Java 配置用户名/密码 @Configuration public class SecurityConfig extends

    76031
    领券