随笔-60  评论-138  文章-1  trackbacks-0
早起的鸟有虫吃,有时候,为了和杜滪大哥能够畅快的聊聊天,就需要早起,因为上班后就没有充裕的时候和心态来聊天了。
今天讨论的问题是,想将flex和acegi结合起来的时候,需要考虑的一个问题,当然了,我还没有尝试,只是推理,也就是说,可能会遇到这样的问题。
看官,如果您有什么意见,欢迎你的发言!

一下是聊天的内容:

雄鸠鸠 2008-02-19 08:06:40
我的ext跟acegi结合..实际就是在action把ext想要的json串给传过去就OK了....ext里还有一些异步调用action中的方法
雄鸠鸠 2008-02-19 08:07:43
其实没有ext或flex.纯用struts标签也能实现acegi的..
蒙古草原狼 08:09:02
纯 struts标签就牵涉到jsp了
蒙古草原狼 08:09:49
如果考虑纯flex实现基于acegi的权限就相当于在html+ext(js)中实现
雄鸠鸠 08:10:23
明白
蒙古草原狼 08:10:42
我的目前的迷茫是,因为servlet需要记住当前用户是谁,这样子才能够判断他有没有访问某个url或者方法的权限


蒙古草原狼 08:11:18
也就是状态的保持,如果我没有错的话,那么使用Jsp后,就会自动用session保持状态
雄鸠鸠 08:11:33
那个acegi会把信息扔到cache里,你不用去管的..你所有的操作都是对cache操作
蒙古草原狼 08:12:16
你说的cache我明白,我目前说的可能还没有牵涉到cache,
雄鸠鸠 08:12:23
你可以看acegi的那个配置文件..都是配置好的...直接操作缓存
蒙古草原狼 08:12:51
很直白的表述,就是我发送一个url过去,后台会判断我是不是登录
雄鸠鸠 08:12:55
也可以直接操作数据库..就是每次访问URL都会去调用一下数据库
蒙古草原狼 08:14:10
这个时候就牵涉到了我刚才说的 要么是怎么判断了
蒙古草原狼 08:14:29
flex调用的时候,就发一个url过去,没有附带的信息了
雄鸠鸠 08:14:36
恩,明白你的意思...你要看眼acegi的配置文件..它里面都定义好了..有专门的拦截器处理url的.
蒙古草原狼 08:15:33
是的,他又专门的filter来处理这个,但是,处理过程中也需要 拿到当前用户的 authrity(似乎是这么写),就是凭证
蒙古草原狼 08:16:05
我目前对于flex或者说(html+ext)怎么保持这个凭证 有些项目不明白
蒙古草原狼 08:16:26
比如,我们使用jsp的时候,会有一个sessionid的概念


雄鸠鸠 08:18:07
acegi里.会自动把你的用户信息,权限信息,都放到cache里.当你启动项目时.
雄鸠鸠 08:18:31
你可以通过它定义的模试.把你的这些信息取到
蒙古草原狼 08:20:55
我觉得你还没有明白我说的

acegi会把验证后的那个凭证放到缓存中来,这个凭证必然后一个标识,我目前的理解就是sessionid的概念,

蒙古草原狼 08:21:18
这个会和jsp结合在一起

蒙古草原狼 08:21:41
但是如果使用html+ext那么这个sessionid不会在js中存在
蒙古草原狼 08:22:13
当你发送一个Url过去的时候,后台就会认为你没有登录(因为你没有发送sessionid过去)
雄鸠鸠 08:22:31
Object userDetail = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
auth = ((UserDetails)userDetail).getAuthorities();
for(int i=0;i<auth.length;i++){
out.println(auth[i].getAuthority());
}
蒙古草原狼 08:23:07
SecurityContextHolder这个是不是需要和session绑定在一起呢?
雄鸠鸠 08:24:47
我目前作的是如果你没权限的话,,是看不到你的任何url的..当你有权限才能点击相应的url
雄鸠鸠 08:25:21
而不是在你点击URL时才提示你没权限
蒙古草原狼 08:26:23
这样的逻辑呢,你登录后,系统会把相应的url给你,这个时候,你点击了某个url,这个时候,系统还是需要判断是不是你有权限
蒙古草原狼 08:26:57
判断你有没有权限的时候,就必须认出你是谁(就是你说的从SecurityContextHolder中取得凭证)
雄鸠鸠 08:27:37

蒙古草原狼 08:27:41
我说的问题就是,系统怎么取得这个凭证

对于这个问题,我认为在jsp存在的时候,是通过sessionid这样的标识 来取得
蒙古草原狼 08:28:02
但是对于html+ext或者flex,是不存在sessionid这个概念的
蒙古草原狼 08:28:26
这个时候,就会取不到凭证,系统就会认为你没有登录!!!
雄鸠鸠 08:29:44
我明白你的意思了..我以前用dwr时也有这种情况...

雄鸠鸠 08:31:34
在配置文件里设置一个securityInterceptor来判断权限的类
雄鸠鸠 08:32:06
我的dwr也是js的..它掉用的是manager类里相应的方法..
雄鸠鸠 08:33:58
securityInterceptor 在执行方法前进行拦截,检查用户权限信息

蒙古草原狼 08:35:05
嗯,我在看,然后呢
雄鸠鸠 08:35:23
你只要配置好相应的信息..就OK了

posted on 2008-02-19 08:36 张氏兄弟 阅读(872) 评论(1)  编辑  收藏 所属分类: 聊天记录知识整理flex

评论:
# re: flex和acegi结合的一个担忧 2008-02-19 09:41 | 张氏兄弟
http://www.mail-archive.com/flexcoders@yahoogroups.com/msg35921.html


看来我杞人忧天了!

We are using that exact combination. Nothing special had to be
> > done.  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: