例如登入页面:
请问等入成功后用户的信息存储在什么地方,我做过尝试在SESSION中查找(JBOSS),但并没有存储在SESSION中.
我的想法是这样:用户以guest身份登入,当他要执行某个操作时,提示需要更高级的权限,需要重新以高级身份登入,可是在一个会话期间用户已经是登入过的,需要把以guest身份登入的信息清掉,可是我不知道信息放在哪!希望高手指点一下,
谢谢!
我的想法是这样:用户以guest身份登入,当他要执行某个操作时,提示需要更高级的权限,需要重新以高级身份登入,可是在一个会话期间用户已经是登入过的,需要把以guest身份登入的信息清掉,可是我不知道信息放在哪!希望高手指点一下,
谢谢!
request.getUserPrincipal()
可参考Jdon框架应用news源码:
http://www.jdon.com/jdonframework/news.htm
如果太依赖于容器提供的JASS实现。可能需求上很难够用,不同的容器,不同的实现,实在是累人
有一个思路,自己去实现,我觉得可以实现自己的LoginModule,Principal
并实现 基于RDBMS的Policy
guest 登陆时 生成一个guest 的 Principal 而这个guest Principal没有Permission
如果真实用户登陆 生成用户的Principal
在web程序中,我们可以有一个主控来做权限校验,
如 ,Subject.doAs(loginContext.getSubject(), new PrivilegedAction(){
public Object run(){
这里根据不同的请求生成相应的Permission e.g FilePermission f = new FilePermission("*","write");
AccessController.checkPermission(f);
做相应的后面的处理
return null;
}
});
当然你也可以将acl做一个框架跟着你的应用一起部署,但是这样未免加重了应用系统,这些都取决于具体人的看法。