早起的鳥有蟲吃,有時候,為了和杜滪大哥能夠暢快的聊聊天,就需要早起,因為上班后就沒有充裕的時候和心態來聊天了。
今天討論的問題是,想將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
張氏兄弟 閱讀(881)
評論(1) 編輯 收藏 所屬分類:
聊天記錄知識整理 、
flex