spring-hibernate服务/dao安全设计查询

发布于 2024-11-06 23:36:44 字数 425 浏览 0 评论 0原文

我正在尝试创建各种服务,例如:

UserService
UserPermissionService
AddressBookService

它将访问 dao,例如:

UserDao
UserPermissionDao
AddressBookDao
CompanyDao

这些将使用 Spring-Hibernate 堆栈并打包在多个 Web 应用程序的后端 jar 中。我希望服务功能可用取决于调用用户对象的权限。此外,调用者(用户)对象将拥有调用者用户的权限。

查询:我是否应该将 Caller 传递给每个 Service 方法调用,然后检查其权限?或者是否有更好的方法使用“Spring/AOP”和/或“工厂模式”,其中调用者对象可用于服务方法。

I am trying to create various services, such as:

UserService
UserPermissionService
AddressBookService

Which would access dao's such as:

UserDao
UserPermissionDao
AddressBookDao
CompanyDao

These will use Spring-Hibernate stack and be packaged in a backend jar for multiple webapps. I want the service functionality to be available depending on the permission of the calling user object. Also, Caller (user) object will have permissions of the calling user.

Query: Should I pass Caller to each Service method call and then check its permission? Or is there a better way using 'Spring/AOP' and/or 'Factory Pattern' where the Caller object can be available to the Service methods.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

羞稚 2024-11-13 23:36:44

这种情况的模式之一是将安全令牌存储在 ThreadLocal 中,并首先在服务方法中要求该令牌的相应权限。

One of the patterns for this case is to store security token in a ThreadLocal and to require corresponding privilege from that token first thing in a service method.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文