【发布时间】:2012-01-05 16:20:53
【问题描述】:
上下文:Web 应用程序 - Java、Spring MVC、Spring Security
对我来说不透明的是要存储哪些信息/如何在 Web 应用程序中执行某些操作(当然不要考虑密码),例如我可以:
- 检索用户(数据库请求)并将用户详细信息存储在会话中。
- 只需检索用户 ID(数据库请求)并将其存储在会话中,并在需要时将其获取到 DAO。在会话中存储用户 ID 是否安全?
- 请求范围。不要在 session 中存储任何东西。(当然 spring 仍然在那里存储安全细节)如果用户请求操作 - 确定是否经过身份验证(?+角色),确定其 id(db 请求),将其获取到 DAO。如果用户再次请求此操作,则必须重复步骤。
假设我的数据库表是否总是以 int id 作为主键。登录名是唯一的。请不要局限于我的 3 种方法,这些都是非常简单的示例,我说的是数据存储/持久化(在这种情况下请不要将 ORM 与这个词相关联),它是 db 请求的组合,用于Web 应用程序中服务器端的 DTO。
我认为,我在会话中(或跨请求)存储的详细信息越多,我就越容易管理它,而且对数据库的请求就越少。如果我将这些详细信息保存在不识别特定用户的形式中,那么应该没有问题吗?例如,如果我存储“id = 5 ;fruit_id[]=1,4,7;(对不起,如果语法错误)在会话中说”,这听起来并不能确定是否违反了安全性?
【问题讨论】:
标签: spring-mvc spring-security