老妖的博客
          現(xiàn)實(shí)的中沒(méi)有幾個(gè)人能夠真為對(duì)方去死,甚至山盟海誓很快就會(huì)在金錢(qián)面前變的微不足道,這才是生活。沒(méi)有永遠(yuǎn)的愛(ài),除了你的父母對(duì)你,當(dāng)然也就沒(méi)有永遠(yuǎn)的恨,更沒(méi)有永遠(yuǎn)的痛,時(shí)間是最好的治療大師,它會(huì)很快撫平你心靈上累累的傷痕。很多年以后你想起來(lái)時(shí),那些在你生命中洶涌來(lái)往的人群至多是個(gè)模糊的影子或者毫無(wú)意義的名字
          posts - 105,  comments - 171,  trackbacks - 0
           1 package com.rdk.security.intercept.web;
           2 
           3 import net.sf.acegisecurity.intercept.web.FilterInvocationDefinitionSource;
           4 import net.sf.acegisecurity.intercept.web.AbstractFilterInvocationDefinitionSource;
           5 import net.sf.acegisecurity.ConfigAttributeDefinition;
           6 import net.sf.acegisecurity.SecurityConfig;
           7 
           8 import java.util.Iterator;
           9 
          10 import com.rdk.security.persistence.ActionDao;
          11 import com.rdk.security.domain.Action;
          12 import com.rdk.security.domain.RoleAction;
          13 import com.rdk.core.NullParameterException;
          14 import org.springframework.dao.IncorrectResultSizeDataAccessException;
          15 
          16 /**
          17 * Clase encargada de implementar la propiedad ObjectDefinitionSource para la clase de acegi
          18 * FilterSecurityInterceptor esta implementacion le entrega el objeto ConfigAttributeDefinition
          19 * con los roles permitidos a acceder a la url pasada como parametro.
          20 * User: Rodney Gallart (rodney@radikalsystems.com)
          21 * Date: Jan 25, 2005
          22 * Time: 4:20:04 PM
          23 */
          24 public class DaoBasedFilterInvocationDefinitionSource
          25 extends AbstractFilterInvocationDefinitionSource
          26 implements FilterInvocationDefinitionSource {
          27 
          28 private ActionDao actionDao;
          29 /**
          30 * Implementacion dao de los objetos de tipo Action
          31 @param actionDao
          32 */
          33 public void setActionDao(ActionDao actionDao) {
          34 this.actionDao = actionDao;
          35 }
          36 
          37 /**
          38 * A este metodo se le pasa como parametro la url que se quiere acceder y devuelve el objeto
          39 * ConfigAttributeDefinition donde vienen los roles que pueden acceder a esa url
          40 *
          41 * ConfigifAttributeDefinition contiene una lista de objetos que implementan la interfaz ConfigAttribute
          42 * puede ser SecurityConfig (Roles como String)
          43 *
          44 * Ahora con la url pasada como parametro debe hacerse una busqueda en una lista de acciones cuando se encuentre
          45 * la accion a la cual pertenece la url entonces se devuelve la lista de Roles
          46 * TODO Analizar la posibilidad de implementar un mecanismo de cache Mapa(url, Action) y bajo que condiciones vaciarlo
          47 @param url Pasada como paremetro para buscar sus roles permitidos
          48 @return ConfigAttributeDefinition
          49 */
          50 public ConfigAttributeDefinition lookupAttributes(String url) {
          51 if (url == null)
          52 throw new NullParameterException("Parametro url null");
          53 try {
          54 url = url.toLowerCase();
          55 url = url.substring(1);
          56 if (url.contains("&"))
          57 url = url.substring(0, url.indexOf("&"));
          58 Action act = actionDao.findByUrl(url);
          59 return obtainRolesInConfigAttributeDefinitionObject(act);
          60 }
          61 catch (IncorrectResultSizeDataAccessException ex) {
          62 return null;
          63 }
          64 }
          65 
          66 /**
          67 * En este metodo se van a obtener los roles asociados a la accion y se va a crear el
          68 * objeto de tipo ConfigAttributeDefinition con la lista de objetos SecurityConfig
          69 @param act
          70 @return
          71 */
          72 private ConfigAttributeDefinition obtainRolesInConfigAttributeDefinitionObject(Action act) {
          73 ConfigAttributeDefinition cad = new ConfigAttributeDefinition();
          74 Iterator it = act.getRoles().iterator();
          75 while(it.hasNext()) {
          76 RoleAction ra = (RoleAction) it.next();
          77 SecurityConfig sc = new SecurityConfig(ra.getRole().getName());
          78 cad.addConfigAttribute(sc);
          79 }
          80 return cad;
          81 }
          82 
          83 public Iterator getConfigAttributeDefinitions() {
          84 return null;
          85 }
          86 
          87 }
          88 
          posted on 2005-11-14 01:58 老妖 閱讀(2016) 評(píng)論(4)  編輯  收藏 所屬分類: spring

          FeedBack:
          # re: acegi擴(kuò)展AbstractFilterInvocationDefinitionSource
          2005-11-14 13:59 | pikachu
          將url和權(quán)限的對(duì)應(yīng)關(guān)系存放在數(shù)據(jù)庫(kù)中??  回復(fù)  更多評(píng)論
            
          # re: acegi擴(kuò)展AbstractFilterInvocationDefinitionSource
          2005-11-14 14:51 | 老妖
          恭喜你,答對(duì)了  回復(fù)  更多評(píng)論
            
          # re: acegi擴(kuò)展AbstractFilterInvocationDefinitionSource[未登錄](méi)
          2007-01-29 18:33 | apple
          import com.rdk.security.persistence.ActionDao;
          import com.rdk.security.domain.Action;
          import com.rdk.security.domain.RoleAction;
          這三個(gè)包分別指什么呢?初學(xué),請(qǐng)?jiān)敿?xì)說(shuō)一下可以嗎?  回復(fù)  更多評(píng)論
            
          # re: acegi擴(kuò)展AbstractFilterInvocationDefinitionSource[未登錄](méi)
          2007-01-29 18:34 | apple
          此外,若用戶新添加了URL,那是不是還要重新啟動(dòng)服務(wù)器?  回復(fù)  更多評(píng)論
            

          <2005年11月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          常用鏈接

          隨筆分類(48)

          隨筆檔案(104)

          好友鏈接

          我的豆瓣

          積分與排名

          • 積分 - 221093
          • 排名 - 257

          最新評(píng)論

          閱讀排行榜

          主站蜘蛛池模板: 大名县| 江阴市| 唐山市| 读书| 鸡泽县| 巢湖市| 株洲市| 柘荣县| 横峰县| 内黄县| 中宁县| 子洲县| 措勤县| 长兴县| 新营市| 遂平县| 平谷区| 张家港市| 宁乡县| 义乌市| 璧山县| 分宜县| 冷水江市| 达州市| 阆中市| 霍山县| 台南市| 绿春县| 句容市| 兴仁县| 公主岭市| 宿迁市| 蓬莱市| 内乡县| 浪卡子县| 黑龙江省| 桐柏县| 溧水县| 综艺| 静宁县| 嘉义县|