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

没有会话时如何使用Spring Security?

洪建茗
2023-03-14
问题内容

我正在使用Spring Security构建一个Web应用程序,该应用程序将驻留在Amazon EC2上并使用Amazon的Elastic Load Balancer。不幸的是,ELB不支持粘性会话,因此我需要确保我的应用程序无需会话即可正常运行。

到目前为止,我已经设置了RememberMeServices来通过cookie分配令牌,并且可以正常工作,但是我希望cookie在浏览器会话中过期(例如,当浏览器关闭时)。

我必须想象我不是第一个不想在没有会话的情况下使用Spring Security的人…有什么建议吗?


问题答案:

在带有Java Config的 Spring Security 3中,可以使用HttpSecurity.sessionManagement():

@Override
protected void configure(final HttpSecurity http) throws Exception {
    http
        .sessionManagement()
            .sessionCreationPolicy(SessionCreationPolicy.STATELESS);
}


 类似资料:
  • 大家好,我对我的应用程序使用哪个会话bean感到困惑。我正在尝试构建一个像Facebook这样的移动网络应用程序,它可以同时允许多个用户。我上网冲浪以获取更多信息。从我从stack overflow和其他教程中收集到的信息来看,有状态会话bean维护事务内部和事务之间的状态(会话状态),并且它是针对客户端的。无状态不支持,但支持多个客户机来共享bean实例。而Singleton有点类似于无状态be

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

  • 问题内容: 如果一个用户已经登录并尝试在新实例中再次登录,我希望它注销另一个用户实例。我不希望同一用户在我的应用程序上登录两次。 当前会话存储在Redis存储中,我正在使用express / connect处理会话存储。可以用来破坏会话的可用功能之一如下: 但是,我需要在调用.destroy()之前找到该会话ID。在Redis中,用户名存储为会话的一部分。 问题:是否可以查询Redis以基于用户名

  • 问题内容: 有没有一种方法可以在PHP中启动持久性会话而无需放置会话cookie?是否还有其他方法可以跨页面维护会话,例如基于IP地址的解决方案? 我问的原因是,尽管大多数用户都启用了cookie,但我想看看是否有一种方法可以使禁用它的用户使用登录系统(即使我个人认为禁用cookie只是不必要的偏执狂)。 问题答案: 我认为要求您的用户启用Cookie并不过分。当人们完全关闭它们时,我觉得很愚蠢。

  • MyDao类有通过Hibernate SessionFactory完成整个持久性任务的方法,它工作得很好。 如上所示,我在MyService中注入了MyDao,但是在注入MyDao后调用@PostConstruct init()方法(调试时,我可以看到MyDao被很好地注入)时,会出现下一个Hibernate异常: org.hibernate.Hibernate异常:没有找到当前线程的会话 我的服

  • Grails 3.2.9 执行任务后,onComplete方法无法获取hibernate会话。 控制器: 服务: 异常堆栈跟踪 2017-05-23 13:41:29.123[ead 6]错误异步执行错误:无法获取当前Hibernate会话;嵌套的异常是org。冬眠HibernateException:未找到当前线程的会话 组织。springframework。刀。DataAccessResour