spring-hibernate服务/dao安全设计查询
我正在尝试创建各种服务,例如:
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这种情况的模式之一是将安全令牌存储在 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.