当前位置: 首页 > 面试题库 >

创建会话无状态用法

颛孙建业
2023-03-14
问题内容

我希望更改为create-session="stateless"在我的Web应用程序中实现无状态Spring Security的目的是结束,但事实并非如此。

进行了此更改后,由于(根据我的假设)Spring安全性在会话中不存储任何内容,并且无法对安全的Web请求进行身份验证,因此Spring安全性似乎无法正常工作。

我如何利用此无状态功能?

我似乎尚未找到任何有关如何为无状态Web应用程序实现无状态Spring安全的示例。

谢谢 !


问题答案:

我有一个基于Spring的webapp,它具有完全无状态的安全性,使其工作的唯一方法是完全禁用会话创建(使用create-session="never")。这会强制对每个请求进行重新身份验证,因此,你还需要将webapp配置为使用HTTP Basic Auth或Digest Auth(当然是通过HTTPS),因为这些不需要特别复杂的协商(相比之下,表单)的登录和OAuth都需要一个会话,因为它们用于建立身份验证上下文的过程要复杂得多。这意味着你将需要在元素<security:http-basic />内部放置一个类似的<security:http>元素。

(这样做的好处是,它启用了非常简单的客户端库,因为它们不必执行cookie /会话管理。代价是处理上的一些开销-建立用户要参与的角色集的建立可以根据每个请求重新计算-以及可以使用哪种身份验证机制的一些限制。)



 类似资料:
  • 需要一些帮助!!我对Drools中的有状态和无状态会话没有清晰的理解。我正在努力理解这一点,所以尝试了一个例子。 我在drools6.5版本上使用有状态和无状态会话测试了下面的drl,在这两种情况下都得到了相同的输出。根据我对无状态会话的理解,它应该只执行第一条规则,当应用程序对象在第一条规则中被修改时,第二条规则不应该被激活(“有效期”)。附加源代码。感谢您在这方面的帮助。

  • Drools中无状态会话和有状态会话的区别是什么。我浏览了不同的文件,发现下面 无状态会话执行规则时事实的任何更改都不会被规则引擎察觉,因此如果任何规则被修改,则不会发生其他规则的重新激活。 我试图执行下面的规则,发现了相同的结果

  • 我是EJB的新手,最近开始研究EJB(3.0)。我已经使用Java6年了,但以前从未使用过EJB。至少可以说,整个EJB业务的复杂性让我不知所措。我不明白我可以在哪里实际应用一些概念。 在理解无状态会话bean后,我想到的一个问题是,你能不能不要总是用一个没有本地成员的类的共享实例来替换无状态会话bean(实际上使其无状态)?我了解到正在为无状态会话bean进行实例池。如果没有状态,就不能简单地使

  • 问题内容: 有状态会话Bean定义如下: 有状态会话Bean对象的状态由其实例变量的值组成。在有状态会话Bean中,实例变量代表唯一的客户端Bean会话的状态。因为客户端与其bean进行交互(“交谈”),所以这种状态通常称为对话状态。 无状态会话Bean定义如下: 无状态会话Bean无状态会话Bean不会与客户端保持对话状态。当客户端调用无状态Bean的方法时,该Bean的实例变量可能包含特定于该

  • org.openqa.selenium.SessionNotCreatedException:无法创建新会话。(原始错误:命令失败:C:\Windows\system32\cmd.exe/s/C“C:\Program Files(x86)\Android\Android sdk\platform tools\adb.exe”-s 69c7aa170104安装“C:\Program Files(x8

  • 对于有状态会话bean(SFSB)和无状态会话bean(SLSB)的用法,我有点困惑。 我知道SFSB与客户保持状态。这很有帮助:什么时候使用有状态会话bean而不是无状态会话bean? 这里和许多其他地方提供的示例是SFSB的购物车。 “如果一个任务需要一系列方法调用(不止一次),并且您需要保留以前的结果以在下一次调用中使用它们,那么就可以使用SFSB”--Source。这将更像是签出(页面之间