Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 带KeyClope和Redis会话存储的Spring Boot_Spring Boot_Redis_Keycloak - Fatal编程技术网

Spring boot 带KeyClope和Redis会话存储的Spring Boot

Spring boot 带KeyClope和Redis会话存储的Spring Boot,spring-boot,redis,keycloak,Spring Boot,Redis,Keycloak,有人能建议如何配置一个Spring引导应用程序,通过keydove进行身份验证,然后使用Redis作为会话存储吗?我花了一天的时间在谷歌上搜索和敲打我的头,我只是觉得我没有任何进展 我知道如何独立配置每一个,也就是说,我可以制作一个引导应用程序,通过KeyClope进行身份验证,我也可以制作一个引导应用程序,在Redis中保持会话,但我不会让它们一起工作。这可能吗?看起来应该是这样。或者这不是它的工作原理 我认为我的工作POC的行为如下: 启动我的应用程序 通过keydepot访问强制登录的某些

有人能建议如何配置一个Spring引导应用程序,通过keydove进行身份验证,然后使用Redis作为会话存储吗?我花了一天的时间在谷歌上搜索和敲打我的头,我只是觉得我没有任何进展

我知道如何独立配置每一个,也就是说,我可以制作一个引导应用程序,通过KeyClope进行身份验证,我也可以制作一个引导应用程序,在Redis中保持会话,但我不会让它们一起工作。这可能吗?看起来应该是这样。或者这不是它的工作原理

我认为我的工作POC的行为如下:

  • 启动我的应用程序
  • 通过keydepot访问强制登录的某些资源-授予对资源的访问权
  • 重新启动我的应用程序
  • 访问相同的资源,但现在不需要登录(因为会话是在Redis中持久化的)

  • 谢谢你的建议。

    好的-原来我只是没注意。我没有正确使用访问/承载令牌。当请求中正确提供了承载令牌时,不需要保留Spring会话。

    有趣!第一个问题是,重新启动应用程序后再次获取登录表单有什么问题?现代浏览器可以记住您的用户名/密码。其次,我会想象Spring boot在哪里处理您的浏览器会话id,并将其与KeyClope AccessToken对象关联,或者仅将其与refreshToken关联,因此在重新启动后,您的用户确实会通过refreshToken获得新的AccessToken配置文件,并继续工作。。。您可以在简单的令牌筛选器中完成此操作,只需扩展OncePerRequestFilter并在SecurityConfig中添加到http.addFilterBefore(您的筛选器,UsernamePasswordAuthenticationFilter.class)。总的来说,钥匙斗篷的退出速度很快。我们会在浏览器中检查过期时间,避免额外的keybeapt调用。不确定我是否帮了忙:)@DmitriAlgazin thx,谢谢你的建议-我会试试看。至于原因,真正的答案是我们在Kubernetes中部署了一组微服务,每个服务可能运行许多实例。因此,目标是只允许其中一个建立会话,并在整个集群中使用该会话。否则,每个实例都必须执行整个keydove登录重新定向cha-cha。