隨筆-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 張氏兄弟 閱讀(891) 評論(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.  回復  更多評論
            
          主站蜘蛛池模板: 申扎县| 彰化县| 米易县| 石嘴山市| 平昌县| 吴桥县| 大关县| 左权县| 长治市| 睢宁县| 九江市| 钟山县| 清远市| 陆川县| 沁阳市| 五寨县| 专栏| 陇南市| 井冈山市| 宁波市| 台中县| 星子县| 巴楚县| 安丘市| 千阳县| 苏州市| 同仁县| 长治市| 湘潭市| 红河县| 台湾省| 宿州市| 光山县| 沐川县| 三穗县| 囊谦县| 阿克苏市| 北京市| 格尔木市| 察隅县| 中山市|