java - Spring Security 用户详细信息最佳实践

标签 java security model-view-controller spring

我正在使用自己的 UserDetailsS​​ervice 接口(interface)实现从数据库加载 User 对象并将其作为 UserDetail 放入我的 SecurityContext 中。 User 对象是一个分离的 Hibernate 对象。

当我想要访问经过身份验证的用户的延迟加载关系时,我需要从 SecurityContext 获取它,并通过加载其 ID 或合并将其再次附加到 Hibernate session 。

在 Spring MVC 或 Spring WS 应用程序中,您通常在哪里执行此操作?在 Controller 中,这意味着我必须将 UserDAO 注入(inject)其中,还是将 ID 传递到服务层以在那里加载它?

最佳答案

这些都不属于 Controller 。把它放在Service层。

Controller 实际上是 View 的一部分。如果您更改 View 技术,则不应改变服务的正常运行。把它放在那里并将服务注入(inject)到 Controller 中。

出于同样的原因,DAO 不属于 Controller 。

关于java - Spring Security 用户详细信息最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1079077/

相关文章:

java - 使用 JDBC 和 MySQL 解决 "communications link failure"

apache - Apache Digest 身份验证是否比 Basic 更安全?

java - 在 Tomcat UnpackWARs 属性设置为 false 的情况下使用 vRaptor 3

java - 在android项目中放置并运行apk文件

java - CollectionUtils.isNotEmpty() 是否比 null 检查更好?

java - 工具窗口中没有gradle工具

mysql - 安全存储客户数据库详细信息

react-native - 如何安全地保存 redux-persist-transform-encrypt key ?

javascript - Sencha Ext JS 4,使用另一个面板创建可拖动面板时遇到问题

python - 将 Cassandra CQL3 与 Python Web 框架结合使用