问题标签 [session-cache]
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.
redis - 如何在 Bluemix 中使用 Spring Sessions 和 Redis 服务?IBM Session Cache 是替代方案吗?
当前的应用程序(与竞争对手)正在使用 Spring-Boot 和 Spring-Sessions 来独立于 Redis 中的实例保存会话数据。
我们如何在 Bluemix 中复制它?
有没有办法将 Spring-Sessions 添加到 Redis 服务?
另一个选项是 IBM Session Cache。这适用于 Spring-Boot 和 Spring-Session 吗?会话缓存服务是否在没有 Tomcat 的情况下工作?(例如码头?)
ibm-cloud - Bluemix Session Cache:驱逐缓存数据的触发器
我在 IBM Bluemix 上创建 Java Web 应用程序。此应用程序通过会话缓存服务在实例之间共享会话对象。
我了解如何使用会话缓存对我的应用程序进行编程。但是如果缓存数据总量超过缓存空间,我找不到任何描述(例如,对于初学者计划,我可以使用 1GB 缓存空间。)。
这些是我的问题。
Q1。是否有任何触发器可以从缓存空间中删除缓存数据?
Q2。超过缓存空间后,会删除哪些数据?有没有最近最少使用、最少使用频率等缓存策略?
ibm-cloud - 会话缓存服务数据如何存储在外部?
根据 DeveloperWorks 的建议进行交叉发布:https ://developer.ibm.com/answers/questions/212469/can-an-application-hosted-outside-bluemix-access-s.html
我正在探索一个场景,其中我有一个在 BlueMix 外部托管的现有 Java 应用程序。我想让它水平扩展。作为此更改的一部分,我想知道是否可以提供 BlueMix 会话缓存服务以在外部存储应用程序的会话状态。该应用程序将继续在 BlueMix 外部托管,但使用 BlueMix 会话缓存进行会话状态管理。
jax-rs - 注入 HttpRequest 时出现 Nullpointer 异常
我在 Bluemix 上有一个 Liberty JAX-RS 2.0 应用程序。我的目标是使用 Bluemix 会话缓存服务作为中央会话存储。
在我的界面中,我像这样注入 HttpRequest 对象:
仅使用 Liberty 就可以正常运行(Bluemix 上没有会话缓存绑定)。我什至不访问httpRequest
我的测试应用程序中的 ,也不访问httpRequest.getSession()
. 将 Session Cache 服务绑定到 Liberty App 并重新暂存该应用程序后,我会在调用 API 时获得以下信息:
java.lang.NullPointerException: 在 com.ibm.ws.xs.sessionmanager.IBMHttpSessionListener.attributeAdded(IBMHttpSessionListener.java:265) 在 com.ibm.ws.session.http.HttpSessionAttributeObserver.sessionAttributeSet(HttpSessionAttributeObserver.java:141) 在 [内部类] 在 org.jboss.weld.context.AbstractConversationContext.sessionCreated(AbstractConversationContext.java:196) 在 org.jboss.weld.servlet 的 org.jboss.weld.context.AbstractConversationContext.copyConversationIdGeneratorAndConversationsToSession(AbstractConversationContext.java:188)。 ConversationContextActivator.sessionCreated(ConversationContextActivator.java:190) 在 [内部类]
根据要求,server.xml - 由 Bluemix 在部署时生成。
所以我猜想注入 HttpRequest 出了点问题......我该如何解决这个问题?
c - 缓存的 SSL 会话是否保存以前的 X.509 证书信息?
当我们重用之前保存SSL_SESSION
的,重用的 SSL 会话是否有原始的 X.509 对等证书?
我的代码很少崩溃,调查显示 SSL 会话被重用,并且 peer cert( certinfo->key->pkey
) 的某些字段被弄乱了。
从 CLT 到 SVR 的第一次握手。
SVR 向 CLT 发送 X.509 证书,CLT 存储该证书。我们可以使用
SSL_get_peer_certificate()
. CLT 保存SSL_SESSION
与SSL_get1_session()
.从 CLT 到 SVR 的第二次握手。
这次 CLT 提供保存
SSL_SESSION
并SSL_set_session()
发生了简短的握手。当 CLT 调用时SSL_get_peer_certificate()
,CLT 可以得到原始的 X.509 证书吗?
似乎与SSL_SESSION
对等 X.509 证书的耦合并包含在内是松散的。除了调用 just 之外,我们是否应该通过显式提升 refcnt 来保存 X.509 对等证书以在重用SSL_get1_session
时正确使用?SSL_get_peer_certificate()
SSL_SESSION
我在 Linux 上使用 LibreSSL 和 OpenSSL。
任何意见将不胜感激。
django - 使用redis作为会话后端时,django docker容器无法访问redis容器
我正在尝试部署模仿我的 django+postgresql(AWS RDS)+redis(AWS Elasticache) 的暂存环境。
我使用最新的 django-redis(4.10) 来设置 django 和 redis。我的设置如下:
当我在我的 pipenv 环境中本地运行它时,postgresql 在 AWS RDS 上远程运行,redis 服务器在本地运行brew services
,一切正常。但是如果我docker-compose up
是容器,django 的会话处理似乎会中断。
我的 docker-compose 如下:(请注意,因为我打算使用 AWS RDS 和 Elasticache,所以我没有在 compose 文件中包含 postgres 和 redis 容器)
当我尝试登录管理站点时,django 容器返回以下错误。
我可以确认 django 没有访问 redis 服务器,因为 redis-cli 的 MONITOR 没有显示任何与 django 相关的日志。
如果我把上面settings.py中的两行注释掉,
我可以登录管理员没有问题,所以它肯定与使用 redis 作为会话后端有关,并且可能是由于无法从 django docker 容器访问 redis。
非常感谢任何帮助!我已经工作了整整两天来解决这个问题,现在我的老板正在为此欺负我。:(
apache - apache 的 SSLSessionCache 不能与 TLSv1.3 和正常重启一起正常工作?(会话恢复)
我有一个非常简单的 httpd-setup 和 SSLSessionCache 指令集,以便在正常重启后(在共享内存中)会话也可用。
然后我使用 openssl s_client 和 -sess_out 参数连接到服务器,所以我有一个会话文件。
下一步是优雅地重新启动 apache。
然后,这次使用带有 -sess_in 参数的 sessionfile 再次与 openssl s_client 连接。
这与 TLSv1.2 完美配合。
但是使用 TLSv1.3 mod_ssl 会以某种方式退回到完全握手。SSL_session_reused() 返回 false。如果我做了完全相同的测试,但没有在请求之间优雅地重新启动,它会起作用并且 SSL_session_reused() 返回 true。
如果我们跟踪 ssl 消息,我们也可以看到这一点:
没有优雅的重启(正确的行为)
在这里,我们看到客户端在他的 ClientHello 中发送了“预共享密钥”扩展。然后,服务器用他的 ServerHello 进行响应,其中还包含预共享密钥扩展,并直接使用 EncryptedExtensions 和 Finish 消息继续。没有证书和 CertificateVerify 消息...
优雅重启(错误行为)
客户端发送相同的。但是服务器随后用不包含“预共享密钥”扩展名的 ServerHello 进行响应。然后是第一次握手中的 Certificate 和 CertificateVerify 消息...
我还看到与 mod_ssl 注册的 OpenSSL 回调相关的奇怪行为:
mod_ssl 注册用于添加、删除和获取会话的所有回调(https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_sess_set_get_cb.html)。也正确设置了 ssl 选项,以便 openssl 不使用其内部缓存。但是现在使用 TLSv1.3,我永远不会陷入“获取会话”回调,而是总是进入“新会话”回调,即使在我离开优雅重启并且 SSL_session_reused 返回 true 的场景中也是如此。我查看了 openssl 代码,实际上,在 TLSv1.3 中,这个回调永远不会被调用。所以我想知道这是否可能是不正确行为的原因......
我认为这是一个非常常见的用例(“允许在正常重启后恢复 ssl 会话”)并且应该像 1.2 一样与 TLSv1.3 一起使用。
任何帮助深表感谢!
更新
这似乎与 SSLSessionTickets 指令有关。随着“SSLSessionTickets off”的恢复工作。如果启用了 SessionTickets,它就不起作用。
mysql - RDS MySQL 一旦过程出现错误,它会重复直到启动新会话,即使使用有效值
我终于找到了我们在处理数据时收到的间歇性错误。当我们执行存储过程并报告“A 列不能为空”时显示错误,但是当我们跟踪记录并手动运行该过程时,它工作正常。我可以使用以下内容重复此错误。
- 使用有效值运行该过程,它成功
- 使用无效值运行相同的过程,失败并显示“A 列不能为空”
- 使用步骤 1 中的相同有效值重新运行相同的过程,它会失败并出现相同的错误
- 打开一个新的选项卡/会话并从步骤 1 重新运行相同的过程,它现在再次成功。
我真的在这个问题上摸不着头脑,似乎找不到正确的文档来提供帮助。我们在 AWS RDS 上使用 MySQL 5.7。似乎会话正在兑现错误,并且只要调用该程序,它就会从现金中提取错误。
ruby-on-rails - 如何从 Rails 缓存哈希上传照片?
我对 Rails 很陌生,我正在尝试在我的应用程序中实现一个多步骤表单,以创建我的User
模型 ( devise
gem) 的新实例。
我使用wicked
gem 并且我选择了缓存持久性和 ID/Key-in-Session 作为处理它的策略。
现在,一切正常,直到我遇到avatar
我的最后一个步骤(a @user
has_one_attached :avatar
)。
当我尝试提交表单时,我从该行收到以下问题:Rails.cache.write(session.id, user_attrs)
user_attrs
当我提交我的图片时,这里是:
好像Rails.cache.write
不能写这个头像对象吧?如果是这样,有没有办法解决它?
谢谢您的帮助!
websphere-liberty - 如何在 AWS 上缓存与 IBM WebSphere Liberty 的会话?
我想将 AWS Elasticache 用于 Liberty 的会话缓存,但看起来 Liberty 的 sessionCache-1.0 功能只能与 JCache 兼容的存储一起使用。(如 Hazelcast、Infinispan 等)。
所以请让我确认一下。
- 无法将 Liberty 的功能 (sessionCache-1.0) 与 AWS Elasticache 一起使用,这是否正确?
- 如果是这样,我是否需要为我的应用程序中的会话缓存编写自定义代码?
如果您对如何在 Liberty 中实现会话缓存有任何建议,我将不胜感激。