【发布时间】:2014-01-31 17:06:23
【问题描述】:
我有如下认证表格,
员工
id_employee、用户名、密码...
1,约翰,woefijlsdkjfu230rdfrfj
2、彼得,sdlautoerwjgosj120943820
员工部门
id_employee_department、employee_id、department_id、角色...
1, 1, 123123, ROLE_STAFF
2、1、123124、ROLE_MANAGER
...
John 是 123123 部门的员工,同时他是 123124 部门的经理。
我写了 security-bean 属性,
<jdbc-user-service id="userService" data-source-ref="dataSource"
users-by-username-query="select username, password, true from employee where username=?"
authorities-by-username-query="select username, role from employee left join employee_department on id_employee = employee_id where username=?"/>
问题是,
John 始终拥有 ROLE_STAFF 和 ROLE_MANAGER。也就是说,他可以访问123123部门的所有数据,访问123124也可以看到对员工无用的信息。
..
避免这种情况的最佳做法是什么?
【问题讨论】: