问题标签 [stateless-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 投票
1 回答
169 浏览

google-app-engine - 部署在 Google-App-Engine 上的 Python 应用程序很少抛出异常

我已经使用 Python 在 Google-App-Engine 上部署了一个网站。

由于 GAE 不保证“keep-alive”,我实现了一个无状态服务器:

  1. 每次内部变量发生变化时,它们都会立即存储到 GQL 数据库中。

  2. 每当流程启动时,所有内部变量都会从 GQL 数据库中加载。

我有一个很少引发异常的场景,但我无法追踪它:

  • 客户端发送一个同步的 AJAX POST 请求。

  • 服务器创建一个会话并在响应中发送一个唯一的会话 ID。

  • 客户端发送一个以会话 ID 作为参数的同步 AJAX GET 请求。

  • 服务器在响应中发送一些文本消息。

由于客户端请求是同步的,所以整个序列也是同步的。

这是我的服务器中的相关映射:

这是我的服务器中的相关请求处理:

这是我的服务器的内部实现:

最后,这是我服务器中的数据库维护:

异常本身表示使用密钥对sessions字典的非法访问。sessionId根据我的观察,只有在服务器“已经休眠”了相当长的一段时间(比如几天左右)之后启动本问题开头描述的客户端-服务器序列时才会发生这种情况。它可能会为这个问题的根源提供某种线索,尽管我看不到它。

我的问题:

  1. 我的设计有什么明显的问题吗?

  2. 有人在 GAE 上遇到过类似的问题吗?

  3. 有没有人看到一个明显的解决方案,甚至是可能有助于理解这个问题的调试方法?

谢谢

0 投票
2 回答
579 浏览

dependency-injection - 在无状态bean中注入有状态bean

stateful session beanstateless session beanusing中注入 a 时DI,究竟会发生什么:容器是否为每个无状态 bean(存在于池中)注入了一个新的有状态 bean 实例,或者它是它们之间共享的同一个实例?

为什么表明JNDI在这种情况下使用优于DI?

我真的不明白。

0 投票
1 回答
899 浏览

java - 什么基于 Java 的技术用于构建无状态应用程序?

我们的一个应用程序将更多地成为基于微服务的架构,驱动程序包括云就绪、响应式、跨渠道、拥抱 API、重型客户端架构、无状态应用程序、动态可扩展应用程序等。

这里的无状态应用程序是什么意思?有哪些 Web 技术可用于构建无状态应用程序?

0 投票
2 回答
670 浏览

java - 在 Hibernate 上不推荐使用 StatelessSession#connection()?

我正在清理一些警告,并connection()使用.StatelessSessionSession

现在,这个问题的答案指向doWorkon 的方法Session,但在 上不存在这样的方法StatelessSession。那么,应该如何解决这种弃用?

0 投票
1 回答
847 浏览

scala - 从 Drools StatelessKieSession 中的 DefaultFactHandle 提取事实/对象(通过 Scala)

到目前为止,我一直在使用 Stateful Sessions (KieSession),并设法使用带有一些 Java 包装器的 Scala 让我的项目按需要运行。我现在正试图切换到 StatelessKieSessions。根据我找到的文档,我设法运行以下命令将对象/集合插入到会话中,触发它们的规则并更新事实:

当我打印result(属于 org.drools.core.common.DefaultFactHandle 类)时,它显示了所需事实的结构,按预期更新,前面是“事实 0:1:2050275256:1971742898:2:默认值:NON_TRAIT:”

文档说我应该能够编写类似的东西,result.getValue("myObject")但是这个选项在 Scala 中似乎不可用。(https://docs.jboss.org/drools/release/6.0.0.Beta1/kie-api-javadoc/org/kie/api/runtime/StatelessKieSession.html

我知道尚未完全提供 Scala-Drools 互操作性,但是有人知道从 StatelessKieSession 或包含它的 DefaultFactHandle 中提取更新事实的方法吗?

0 投票
0 回答
460 浏览

java - 在 Hibernate 中使用 StatelessSession 进行事务管理

我担心在 spring 应用程序中使用StatelessSession和使用 hibernate。ScrollableResults我有许多 DAO,主要使用在其中自动装配的通用会话对象,但出于一个目的,我需要循环遍历整个表。我发现为此,使用ScrollableResults迭代对象而StatelessSession不是将任何附加结果存储在内存中是有效的。但是,我需要在 DAO 之外进行此迭代,因为来自 DB 的信息用于访问外部 API。所以我已经创建了创建和关闭的方法StatelessSession来自 DAO 外部。我想知道,在这种情况下我应该如何管理交易?似乎根本不需要事务操作(仅读取数据),但在代码审查中,我被告知事务可以自动创建,并且永远不会被 Spring Hibernate Transaction Manager 关闭。那么它应该是手动覆盖还是无用的预防措施?

0 投票
0 回答
842 浏览

reactjs - 实现无状态身份验证的正确方法是什么?

我是单页应用程序的新手。对我来说,一个大问题是如何确保我的应用程序安全。我在前端使用 React,在后端使用 express + mongodb。

我是旧网站,我们使用会话进行授权。如果会话超时,我们可以让用户重定向到登录页面。如果用户继续在我们的网站上执行某些操作,他的会话将永远不会过期。

但是现在,我正在使用 JWT 进行授权。令牌可能会在 1 分钟后过期,之后用户必须重新登录。

据我了解,一种方法是“在每个请求/响应上重新发送一个令牌,然后每个请求/响应都会有一个新令牌”。但我认为这不是如何使用 JWT 的正确方法。

所以我的问题是:

  1. 如果他仍然在我们的网络应用程序上工作,那么避免用户再次登录的正确方法是什么?
  2. 我们需要将令牌存储在数据库(mongodb)中吗?
  3. 如果我将令牌存储在 localStorage 中,每个人都可以从浏览器中借用它并将令牌复制到他们的客户端中。如何避免?
0 投票
1 回答
847 浏览

c# - 如何使用无状态会话插入具有值集合的实体?

我有以下(简化的)实体需要批量插入:

并且Tags配置了属性(通过 FluentNHibernate):

这会产生这些表(使用 SQLite):

我想使用无状态会话来减少内存消耗并提高一点速度。我意识到,因为无状态会话不执行任何级联,我必须Tags自己插入集合。我尝试了以下方法:

但这失败了,但有一个例外:

NHibernate.MappingException:没有持久性:标签

那么,如何插入书签实体及其标签集?

0 投票
0 回答
642 浏览

grails - Grails spring security rest plugin v1.5.3 - 刷新令牌流

我有一个使用 grails v2.5.2 实现的 REST API 和一个使用 AngularJS 的客户端。我正在使用插件默认提供的 JWT 身份验证。

我已将令牌到期时间设置为 3600,并且我想自动刷新 access_token(对用户透明)。我知道我必须使用 application/x-www-form-urlencoded 对 /oauth/access_token 进行 POST 并发送 refresh_token 以获得新的 access_token。

我的问题是:

  • 令牌过期时这个插件返回的状态码是什么?我设置了 log4j,我看到它在令牌过期后发送 401。我希望 403 而不是 401,因为最后一个用于无效的登录凭据。

我需要知道这一点才能设置响应拦截器来请求新的 access_token。

谢谢!

0 投票
2 回答
22154 浏览

java - Spring Boot Basic Authentication without Session(无状态会话)

我已经为我的 Spring-Boot 应用程序配置了基本身份验证。一切都是 Java Config,没有 xml。

它被配置为基本身份验证和普通表单登录。当我在 Firefox 上测试来自 Rest-Client 的基本身份验证时,我可以访问安全 URL“/main”。但在响应标头中,我得到Set-Cookie: JSESSIONID=301225C7AE7C74B0892887389996785D;.

我不希望为基本身份验证生成 cookie。我希望基本身份验证为 true Stateless session。请注意,我需要生成 cookie 才能使表单登录工作,因此禁用 cookie 不是一种选择。我知道create-session="stateless"in xml 配置,但是有没有办法在 Java 配置中做同样的事情,以便基本身份验证是无状态的,而表单身份验证是有状态的..?