问题标签 [spring-session]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
11696 浏览

spring - 与 redis 的春季会议 - 如何在集成测试中模拟它?

所以,我在我的项目中使用春季会议。如何使用它在项目中编写集成测试?我应该为春季会议内部嘲笑一些东西吗?或者任何合理的方式来使用嵌入式redis?

我看到过去有一些 @EnableEmbeddedRedis 注释,但似乎它已被删除:https ://github.com/spring-projects/spring-session/issues/248

//编辑

我试图将 MockHttpSession 传递给

但是 spring 尝试并无法连接到 redis。

0 投票
5 回答
7758 浏览

spring - 如何更改春季会话(redis)cookie名称?

我们在同一个域后面有两个项目(它们前面的 zuul 代理),都使用 spring 会话项目,会话保存在 redis 中。

这两个会话应该不同,但似乎它们在名为“SESSION”的 cookie 中覆盖了彼此的 id。怎么改这个名字?有没有简单的方法通过配置来做到这一点?

0 投票
1 回答
954 浏览

spring-social - 你可以有多个 HttpSessionStrategy 吗?

我希望有一个基于HttpSessionStrategy下面列出的标头,但是 Spring Social 似乎希望将社交令牌存储在会话中。当它被重定向回应用程序时,没有x-auth-header指定,因此创建了一个新会话并且令牌丢失了。

我们还能将HeaderSessionStrategywith theCookieSessionStrategy作为后备吗?

处理这个问题的最佳方法是什么?

0 投票
0 回答
452 浏览

spring - spring-boot 1.3.0.RC1:从会话中获取 oauth2 用户信息的 ClassCastException 在 Redis 中持续存在

我正在使用具有 OAuth2 单点登录的 spring-boot 应用程序(正在开发中,但已经在工作)。

我将会话存储从 Tomcat 更改为 Redis。

问题

当我ClassCastException尝试从SecurityContextHolder.

将用户对象存储到UsernamePasswordAuthenticationToken

认证后的会话

检索用户对象(经过身份验证后)

我调试userAuthentication对象并确认userAuthentication.details拥有 MyUser 对象。所以ClassCastException发生在将 UserEntity 转换为 UserEntity 时,但为什么呢?

我可以正确获取主体(=UserEntity.id)。

有没有人有任何解决方案?

以下是当前配置的一部分。

依赖项

Redis 配置

OAuth2 Sso 配置

类似问题

使用 spring-session 和 spring-cloud-security 时,OAuth2ClientContext (spring-security-oauth2) 不会保留在 Redis 中

我按照上面的答案更改过滤器顺序(在 RedisConfig.java 中),但它不起作用。

我当前的过滤顺序如下。

更新代码

ClassCastException 的原因是 ClassLoader 的不匹配。

org.springframework.boot.devtools.restart.classloader.RestartClassLoadersun.misc.Launcher$AppClassLoader

但我不知道如何解决这个问题,一如既往。

解决了!

我在下面更改了过滤器顺序,它可以工作。

  1. 请求上下文过滤器
  2. oAuth2ClientContextFilter
  3. springSessionRepositoryFilter
0 投票
1 回答
1475 浏览

spring - Spring Session + REST + 自定义身份验证过滤器(从 JSON 读取凭据而不是查询参数)

我正在尝试将我的休息服务身份验证从基本身份验证转换为基于表单的身份验证,如果我在 url 中将身份验证详细信息作为查询参数发送如下代码可以正常工作(注意我已经注释掉了自定义身份验证过滤器)http://localhost:8080/login?username=dfdf&&password=sdsdd

但是我并不热衷于将凭据作为查询参数发送,而是我更愿意将其作为 json 发送,因此我创建了自定义身份验证过滤器。当我添加自定义身份验证过滤器时,我的 spring 会话停止工作。我在响应标头中找不到x-auth-token字段。任何关于如何同时启用 spring 会话和自定义身份验证的建议/或者可能是处理 json 凭据输入的更简单方法。

0 投票
1 回答
2811 浏览

spring - 一个应用程序中的 Spring Security OAuth2 身份验证和表单登录

是否可以在一个应用程序中通过登录基本和 oauth2 结合授权和身份验证?

我的项目基于 jhipster 项目,带有简单的 spring 安全会话登录,现在我需要为移动应用程序添加 oauth2 安全性,看起来这是不可能的。

现在我遇到了其中一个工作的情况,如果 WebSecurityConfigurerAdapter 的订单号大于 ResourceServerConfiguration,则 oauth2 可以。这意味着如果 oauth 安全过滤器是第一个。我在 stackoverflow 中阅读了很多内容并尝试了许多解决方案,例如: Spring security oauth2 and form login configuration for me that's one don't work。
现在我知道这与一些安全过滤器冲突有关,但我不知道如何解决它。

如果有人遇到类似的问题并且他设法做到了,或者知道如何解决或改善问题,我将不胜感激。在此先感谢您的帮助 :)

对于此设置,WebSecurityConfigurerAdapter 会话可以正常工作。对于正确授权后的 OAuth,我得到有效的访问令牌,但对于来自会话的带有此令牌的请求,我得到以下结果:

函数写入控制台:anonymousUser true [ROLE_ANONYMOUS] anonymousUser

并且应该是 user1 true [ROLE_USER] user1

0 投票
3 回答
10317 浏览

spring - 是否可以在没有 Redis 的情况下使用 Spring Boot 会话?

查看 Spring Boot 文档,我只找到了使用 Redis 会话的示例,是否可以在没有Redis 的情况下使用它?

0 投票
0 回答
1040 浏览

spring - 使用带有 Redis 的 Spring Session 的带有 Spring Security 的 Grails:ClassNotFoundException

我正在使用 Spring Security Core 插件运行 Grails 2.5.0。Spring Security 的设置非常简单(没有自定义过滤器、提供程序、用户详细信息服务等)。

我们尝试通过模仿此处描述的配置来引入带有 Redis 的 Spring-Session 。因此,我有一个resources.groovy看起来像这样的:

WebXmlConfig.groovy看起来像这样:

当我登录时,我可以在 Redis 中看到会话正在保持。但是,似乎第一次再次检索会话信息时,它的反序列化失败并显示ClassNotFoundException

知道可能是什么原因造成的吗?我所有的配置都非常简单,以至于这似乎是这种集成最简单的情况。

0 投票
2 回答
1012 浏览

java - spring-boot 1.3-M5 oauth2 SSO 不适用于 spring-session?

基本上我无法让 spring-boot oauth2 集成与 spring-session 一起使用。

我在 spring-boot 的问题跟踪器中创建了一个问题: https ://github.com/spring-projects/spring-boot/issues/4360

我做了一个回购来证明这个问题

https://github.com/sloppycoder/spring-session-oauth-problem

有2个模块:

我的 sso 注销逻辑是这样工作的:

  1. 单击“注销”按钮将执行 POST 到http://localhost:19999/uaa/logout,并在成功注销后传递 URL 以重定向到http://localhost:8080/ssologout
  2. auth-server 注销并重定向到http://localhost:8080/ssologout
  3. http://localhost:8080/ssologout然后 POST 到http://localhost:8080/logout
  4. (默认 spring-security 行为)注销后,重定向到http://localhost:8080/login?logout
  5. http://localhost:8080/login?logout重定向到http://localhost:19999/uaa/login并提示用户再次登录。

但是,在我引入春季会议之后,第 5 步并没有发生。浏览器直接进入 web-app /dashboard。

确保在运行 sos-spring-session 分支之前启动本地 redis 守护进程。

我创建了 2 个分支来显示不同的行为:

  1. sso-only。spring-boot 与 auth-server 集成,一切正常。
  2. sso-spring-sesson。注销不起作用。

github比较显示了差异。

我将不胜感激有关如何解决此问题的任何建议和建议。

0 投票
1 回答
261 浏览

spring-security - Do I need some special setting to use "Automatic Session Alias Inclusion"?

Currently I'm trying to make simple application that using spring session(with spring security on spring boot)

it almost works well. but I'm stuck at one point

spring session's guide said "Spring Session will automatically include the session alias in any URL"

but in my jsp , it doesn't works .

so I have to write including alias code by hand

in the my IDE(spring tool suite),multi users sample code working well same as a guide, and I'm using a same version of jstl at my app

well ... perhaps I have to write more information about my question

sorry but I can't guess which component to affect this problem maybe some part of function of spring session or boot

anybody can advise me which component blocking "Automatic Session Alias Inclusion" or need some setting for use ?