【问题标题】:Spring Session Management春季会话管理
【发布时间】:2010-12-28 05:50:36
【问题描述】:

我正在为我的网络应用程序使用 Spring。我使用了几个 SimpleFormControllers。我在登录页面的第一个 SimpleFormController 中创建了一个会话:

HttpSession session = request.getSession(true);

如何使用 Sessions 保护其他 SimpleFormController,即如果用户未登录,其他控制器将不会加载。

谢谢

【问题讨论】:

    标签: java spring-mvc


    【解决方案1】:

    您可能想使用 Spring Security。 它很灵活,允许基于角色进行限制。

    没有它,无论用户是否登录,您都需要手动检查每个控制器。或者您必须通过向 web 应用添加过滤器来“重新发明”一个安全框架。

    如果你只想保护获取会话的操作,你需要编写一个过滤器来包装原始请求并覆盖getSession方法。在那里,您可以使用原始请求的 getSession() 检查登录数据。

    顺便说一句,getSession() 等价于 getSession(true)

    【讨论】:

    【解决方案2】:

    为了保护控制器免受预期会话之外的访问,您可能需要将您需要的范围界定规则与本明确编写的指南进行比较。 How to get Session Object In Spring MVC

    作者给出了一个创建带有@Scope("session")注解的Controller的例子

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-29
      • 2012-02-17
      相关资源
      最近更新 更多