【问题标题】:Strategy for managing user actions in java web application在 Java Web 应用程序中管理用户操作的策略
【发布时间】:2012-01-05 16:20:53
【问题描述】:

上下文:Web 应用程序 - Java、Spring MVC、Spring Security

对我来说不透明的是要存储哪些信息/如何在 Web 应用程序中执行某些操作(当然不要考虑密码),例如我可以:

  1. 检索用户(数据库请求)并将用户详细信息存储在会话中。
  2. 只需检索用户 ID(数据库请求)并将其存储在会话中,并在需要时将其获取到 DAO。在会话中存储用户 ID 是否安全?
  3. 请求范围。不要在 session 中存储任何东西。(当然 spring 仍然在那里存储安全细节)如果用户请求操作 - 确定是否经过身份验证(?+角色),确定其 id(db 请求),将其获取到 DAO。如果用户再次请求此操作,则必须重复步骤。

假设我的数据库表是否总是以 int id 作为主键。登录名是唯一的。请不要局限于我的 3 种方法,这些都是非常简单的示例,我说的是数据存储/持久化(在这种情况下请不要将 ORM 与这个词相关联),它是 db 请求的组合,用于Web 应用程序中服务器端的 DTO。

我认为,我在会话中(或跨请求)存储的详细信息越多,我就越容易管理它,而且对数据库的请求就越少。如果我将这些详细信息保存在不识别特定用户的形式中,那么应该没有问题吗?例如,如果我存储“id = 5 ;fruit_id[]=1,4,7;(对不起,如果语法错误)在会话中说”,这听起来并不能确定是否违反了安全性?

【问题讨论】:

    标签: spring-mvc spring-security


    【解决方案1】:

    您的问题有点模糊,只能根据具体的细节来正确回答。但是,通常可以在会话中存储用户详细信息,包括用户 ID。可能是一个 User 对象,它反映了您在数据库的用户表中拥有的任何字段/详细信息。存储身份验证级别或角色也可以。当然,您不应该在会话中存储太多太多数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-30
      • 2015-03-18
      • 2011-08-30
      • 2011-11-20
      • 2017-11-19
      • 2023-03-12
      • 1970-01-01
      • 2011-08-16
      相关资源
      最近更新 更多