最近我在学习J2EE,在action层中有很多的方法比如:
newsDoc.do?cmd=update 这个方法必须要登陆后才能访问,
newsDoc.do?cmd=list 这个方法则可以不需要登陆也能访问.
大体也就是有很多的crud(增\删\改\查) 而有一些增\删\改是需要用户登陆后才能访问调用这个方法的.
而有的地方比如查\增则不需要登陆也可以访问调用这些方法.
没有使用权限框架比如acgei 就是普通的session记录用户登陆.请问应该如何最优的设计呀.
最近我在学习J2EE,在action层中有很多的方法比如:
newsDoc.do?cmd=update 这个方法必须要登陆后才能访问,
newsDoc.do?cmd=list 这个方法则可以不需要登陆也能访问.
大体也就是有很多的crud(增\删\改\查) 而有一些增\删\改是需要用户登陆后才能访问调用这个方法的.
而有的地方比如查\增则不需要登陆也可以访问调用这些方法.
没有使用权限框架比如acgei 就是普通的session记录用户登陆.请问应该如何最优的设计呀.
maoweiwer,我终于看到有人有这样的需求了,我以前用ssh自己写了一个,现在我把它用rails实现了,不知道能不能帮你.
我是把xxxAction.do这样的保存到模块表中,把cmd=delete,cmd=list这样的保存到功能表中,用户的权限和这些模块表和功能表关联,在用户登录的时候,通过关联查询把用户的权限列表保存在session中,
也户的权限列表其实就如同这个样子:
newsDoc.do?cmd=update
newsDoc.do?cmd=list
每一次用户请求某一个链接的时候,有一个权限过滤器会起作用的,它会先取请求的url与session中的权限列表对比,如果包含,说明是经过授权的,可以继续执行,否则重定向到"你没有此操作权限"的页面.
我用rails 做的
[url]http://rails2.iteye.com/blog/215074[/url]
由于是rails ,所以代码比java少得很多,不知道你了不了解一点rails和ruby,其实你只要把这篇文章中所讲的思想搞懂了就可以有助于你这个权限控制了.