我正在尝试创建各种服务,例如:
UserService
UserPermissionService
AddressBookService
哪个会访问dao,例如:
UserDao
UserPermissionDao
AddressBookDao
CompanyDao
这些将使用Spring-Hibernate堆栈并打包在多个webapps的后端jar中。我希望服务功能可用,具体取决于调用用户对象的权限。此外,调用者(用户)对象将具有调用用户的权限。
查询:我应该将呼叫者传递给每个服务方法调用,然后检查其权限吗?或者有更好的方法使用'Spring / AOP'和/或'Factory Pattern',其中Caller对象可用于Service方法。
答案 0 :(得分:2)
这种情况的一种模式是将安全令牌存储在ThreadLocal中,并在服务方法中首先要求该令牌具有相应的权限。