[原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架

          實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架

          最近項(xiàng)目使用Acegi作為安全框架的實(shí)現(xiàn),效果不錯(cuò),就寫了這篇文章作為總結(jié).

          對于任何一個(gè)完整的應(yīng)用系統(tǒng),完善的認(rèn)證和授權(quán)機(jī)制是必不可少的。在基于SpringFramework的WEB應(yīng)用中,
          我們可以使用Acegi作為安全架構(gòu)的實(shí)現(xiàn)。本文將介紹如何在基于Spring構(gòu)架的Web應(yīng)用中使用Acegi,并且詳細(xì)介
          紹如何配置和擴(kuò)展Acegi框架以適應(yīng)實(shí)際需要。

          文章和代碼下載:

          http://www.aygfsteel.com/Files/youlq/Acegi.zip


          注意:許多朋友在部署上遇到一些麻煩,所以我將可以部署的完整的war文件傳上來,注意:java代碼在acegi-sample.war\WEB-INF 目錄下,例子需要Mysql,建庫腳本在acegi-sample.war\db目錄下。

          acegi-sample.part1.rar
          acegi-sample.part2.rar
          acegi-sample.part3.rar
          acegi-sample.part4.rar

          附注:

          有些朋友詢問我如何部署文中的例子,在此再次說明一下(文章中已經(jīng)有提到):

          Mysql的建表腳本在db目錄下
          為了減小體積,已經(jīng)將WEB-INF\lib下的依賴包刪除,請自行下載以下包,并拷貝至WEB-INF\lib下:
          spring-1.2.4.jar
          acegi-security-0.8.3.jar
          aopalliance-1.0.jar
          c3p0-0.9.0.jar
          commons-logging-1.0.4.jar
          ehcache-1.1.jar
          log4j-1.2.8.jar
          mysql-connector-java-3.1.10-bin.jar
          oro-2.0.8.jar

          提示:
          acegi-security-0.8.3.jar
          aopalliance-1.0.jar
          c3p0-0.9.0.jar
          commons-logging-1.0.4.jar
          ehcache-1.1.jar
          log4j-1.2.8.jar
          oro-2.0.8.jar
          可以在acegi-security-0.8.3.zip所帶的acegi-security-sample-contacts-filter.war中找到。
          spring-1.2.4.jar
          mysql-connector-java-3.1.10-bin.jar
          要分別到springframework和mysql網(wǎng)站下載。



          posted on 2005-12-06 10:49 一餐三碗 閱讀(50071) 評論(72)  編輯  收藏 所屬分類: 教程

          評論

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2005-12-11 19:04 rockyzhang  回復(fù)  更多評論   

          對方法的自定義權(quán)限控制
          對URL的自定義權(quán)限控制
          這個(gè)有沒有相關(guān)的一點(diǎn)代碼或者提示呢?

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2005-12-12 08:57 一餐三碗  回復(fù)  更多評論   

          由于目前我沒有遇到這種需求,因此沒有仔細(xì)考慮過這方面代碼,不過通過我的例子代碼相信會(huì)對你有很大幫助的.

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2005-12-12 11:55 海珠江奮  回復(fù)  更多評論   

          一直有個(gè)疑問.acegi的靠聲明方式來做安全訪問的和分配權(quán)限的.
          如果是客戶需要自定義權(quán)限的話.該怎么辦呢.沒有理由讓客戶來做配置吧

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2005-12-12 13:14 一餐三碗  回復(fù)  更多評論   

          文章里面已經(jīng)解決了這個(gè)問題.配置信息基本是在數(shù)據(jù)庫中.

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2005-12-16 15:20 吳淦  回復(fù)  更多評論   

          好,經(jīng)典!

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2005-12-20 17:49 Feiing  回復(fù)  更多評論   

          關(guān)于數(shù)據(jù)庫擴(kuò)展實(shí)現(xiàn), 可以參考

          http://starcraft.blogdriver.com/starcraft/1089862.html



          http://www.hibernate.org.cn/viewtopic.php?t=17538

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2006-01-07 15:30 一餐三碗  回復(fù)  更多評論   

          好些朋友通過email和我交流,我將把一些朋友的問題和我的解答陸續(xù)貼出來。

          來自ligangdu@21cn.com的朋友問:
          -----------------------------------------------------
          為什么在訪問acegi-sample的時(shí)候會(huì)自動(dòng)顯示login.jsp頁面呢,我看了web.xml,其中沒有設(shè)置welcome-file。是不是因?yàn)樵凇癮uthenticationProcessingFilterEntryPoint”中設(shè)置了“<property name="loginFormUrl"><value>/login.jsp</value></property>”?
          -----------------------------------------------------
          答:是的。

          來自mechiland@gmail.com的朋友問:
          -----------------------------------------------------
          有一個(gè)疑問就是:例子中的控制只能到方法級別,能不能到數(shù)據(jù)級別?
          例如:readOnlyUser cannot call ContactManager.delete方法
          editUser 可以調(diào)用ContactManager.edit方法
          但是受限的編輯用戶只能調(diào)用edit方法中的某些參數(shù),例如,訂單號從1-100的訂單。

          不知道Acegi能否在數(shù)據(jù)權(quán)限的控制上也有解決辦法?
          -----------------------------------------------------
          答:這個(gè)問題我在文章的總結(jié)部分有提到:
          <!--在本文的示例程序中我們只對業(yè)務(wù)對象(ContactManager)進(jìn)行安全保護(hù),對業(yè)務(wù)領(lǐng)域?qū)ο螅–ontact)的訪問并沒有作限制,這是由于在Acegi框架中采用ACL(訪問控制列表)技術(shù)實(shí)現(xiàn)這個(gè)功能,這使得一旦我們的業(yè)務(wù)領(lǐng)域?qū)ο髷?shù)量很多的話,效率將變得很低,因此我們將對業(yè)務(wù)領(lǐng)域?qū)ο笤L問控制的代碼放在業(yè)務(wù)對象的業(yè)務(wù)方法中。-->
          說實(shí)話,這個(gè)問題我還沒有找到很合適的方法解決,acegi提供的acl技術(shù)在性能上會(huì)有很大的問題,當(dāng)然,如果數(shù)據(jù)量很小的話,也可以嘗試.不過在大部分的應(yīng)用場景我想這種機(jī)制是不夠完美的.也許可以通過AOP技術(shù)對方法的參數(shù)和返回值進(jìn)行攔截和過濾.可能以后有時(shí)間再深入研究一下.

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2006-01-10 16:30 bzshow  回復(fù)  更多評論   

          客戶需要自定義權(quán)限的話
          可以繼承AbstractSecurityInterceptor.java,
          當(dāng)然還要修改一些類, 具體可以參考源碼

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2006-02-11 20:40 soncheng  回復(fù)  更多評論   

          運(yùn)行出現(xiàn)提示:

          [WARN,Configurator,main] No configuration found. Configuring ehcache from ehcache-failsafe.xml found in the classpath: jar:file:D:/acegi/xmnms/WEB-INF/lib/ehcache-1.1.jar!/ehcache-failsafe.xml

          StandardWrapper[/xmnms:default]: Loading container servlet default

          StandardWrapper[/xmnms:invoker]: Loading container servlet invoker

          HttpConnector[8080] Starting background thread

          [WARN,LoggerListener,HttpProcessor[8080][2]] Authentication failed due to nonexistent username: root; details: net.sf.acegisecurity.ui.WebAuthenticationDetails@1f10a67: RemoteIpAddress: 127.0.0.1; SessionId: 771B3D44CEAAA2B004CB305F5E4D7286

          [WARN,LoggerListener,HttpProcessor[8080][2]] Authentication failed due to nonexistent username: root; details: net.sf.acegisecurity.ui.WebAuthenticationDetails@1694eca: RemoteIpAddress: 127.0.0.1; SessionId: 771B3D44CEAAA2B004CB305F5E4D7286

          [WARN,LoggerListener,HttpProcessor[8080][2]] Authentication failed due to nonexistent username: root; details: net.sf.acegisecurity.ui.WebAuthenticationDetails@1220b36: RemoteIpAddress: 127.0.0.1; SessionId: 771B3D44CEAAA2B004CB305F5E4D7286

          [WARN,LoggerListener,HttpProcessor[8080][2]] Authentication failed due to nonexistent username: root; details: net.sf.acegisecurity.ui.WebAuthenticationDetails@13515e: RemoteIpAddress: 127.0.0.1; SessionId: 771B3D44CEAAA2B004CB305F5E4D7286


          不能驗(yàn)證:

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2006-02-12 12:52 sailer  回復(fù)  更多評論   

          下載的例子中的控制只能到方法級別,例如:readOnlyUser cannot call ContactManager.delete方法。但是我試了,用readonly登錄進(jìn)去后仍可以進(jìn)行刪除操作,與root用戶沒有任何區(qū)別,這是為什么啊?
            另外,root用戶與readonly用戶配置的權(quán)限不同,在配置文件中如何(就是說root可以進(jìn)行Delete操作,readonly不能進(jìn)行Delete操作在配置文件中哪處體現(xiàn)?)體現(xiàn)?

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2006-02-13 15:34 xmlbjtu  回復(fù)  更多評論   

          我怎么下載的包中只有6個(gè)JSP文件,其它都沒有了,是不是要自己建。代碼看文檔寫。哪兒有完整的包可以下載。謝謝了。

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2006-02-13 19:41 一餐三碗  回復(fù)  更多評論   

          @xmlbjtu
          @soncheng
          @sailer
          我重新上傳了可以部署的完整的war文件,再試一下。

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2006-03-16 19:41 James Ma  回復(fù)  更多評論   

          用戶的查詢,除了cache外,有沒有其它機(jī)制?為cluster環(huán)境,cache不支持同步.

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2006-03-18 20:52 一餐三碗  回復(fù)  更多評論   

          @James Ma
          cluster環(huán)境我沒有試過,可以考慮采用支持cluster環(huán)境的cache實(shí)現(xiàn)替代ehcache,或者修改acegi代碼加入cluster支持.

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2006-03-29 09:32 gavin  回復(fù)  更多評論   

          問一個(gè)問題:acegi的認(rèn)證方式可以配置么?就像JAAS那樣可以通過LoginContext來調(diào)用不同的LoginModule,來實(shí)現(xiàn)不同方式的認(rèn)證,比如登錄時(shí)可以通過數(shù)據(jù)庫來校驗(yàn),或者通過windowsNT的用戶來校驗(yàn),acegi是否支持?

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2006-03-30 09:52 一餐三碗  回復(fù)  更多評論   

          Acegi可以通過配置不通的AuthenticationProvider來調(diào)用不同的認(rèn)證方式實(shí)現(xiàn). Acegi自帶以下認(rèn)證方式實(shí)現(xiàn)(這些類均實(shí)現(xiàn)AuthenticationProvider接口):
          AnonymousAuthenticationProvider
          AuthByAdapterProvider
          CasAuthenticationProvider
          DaoAuthenticationProvider
          JaasAuthenticationProvider
          PasswordDaoAuthenticationProvider
          RememberMeAuthenticationProvider
          RemoteAuthenticationProvider
          RunAsImplAuthenticationProvider
          X509AuthenticationProvider

          在我的例子中使用了
          AnonymousAuthenticationProvider
          DaoAuthenticationProvider
          這兩種.

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2006-05-09 17:15 xxxxxx  回復(fù)  更多評論   

          <form action="j_acegi_security_check" method="POST">

          登陸的時(shí)候是怎么處理的 這一句看不懂a(chǎn)ction="j_acegi_security_check" ??
          eclipsehibernate@hotmial.com

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2006-05-10 10:19 hard  回復(fù)  更多評論   

          在那有它的源碼亞net.sf的那個(gè),sourceforge上面的是org且不能編譯過去,(符號有問題的)

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2006-05-10 16:41 一餐三碗  回復(fù)  更多評論   

          @xxxxxx
          標(biāo)準(zhǔn)格式,呵呵,沒什么道理的.

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2006-05-10 16:43 一餐三碗  回復(fù)  更多評論   

          @hard
          這個(gè)例子采用的是acegi-security-0.8.3這個(gè)版本,請下載對應(yīng)的版本編譯.

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2006-05-21 11:26 irene  回復(fù)  更多評論   

          我下載之后,打開的PDF是亂碼:(

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2006-07-20 14:44 freshman  回復(fù)  更多評論   

          用jdbcDaoImpl里的那種sql去驗(yàn)證,應(yīng)該是有sql注入問題吧

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2006-07-21 08:14 一餐三碗  回復(fù)  更多評論   

          @freshman
          sql注入問題是由采用字符串拼接的方式構(gòu)造sql語句所產(chǎn)生的,在這個(gè)例子里沒有采用這種方式.

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2006-08-24 15:12 溫柔一刀5  回復(fù)  更多評論   

          一餐三碗能不能升級到1.0版本,便于學(xué)習(xí),是試了一下,由于一些類在1.0版本連類名字都改了,我不熟,所以不知道改成什么了?能否花點(diǎn)時(shí)間升下?非常感謝!

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2006-10-25 09:25 一餐三碗  回復(fù)  更多評論   

          @溫柔一刀5

          呵呵,我也一直想做這件事情,可是沒有時(shí)間啊,要知道寫教程真的很花時(shí)間的。不過我建議在沒有更好的文章之前可以下載我這篇文章的對應(yīng)代碼仔細(xì)看看,重要的是在于理解acegi的設(shè)計(jì)思想,理解之后我想升級就不是難事了。

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:/login.jsp*= 2006-10-28 19:14 ACEGI  回復(fù)  更多評論   

          您好,我想向您請教下Acegi:/login.jsp*=ROLE_ADMIN *是什么意思啊??

          /testpages/*.jsp=ROLE_ANONYMOUS,ROLE_PARTICIPANT,ROLE_RA,ROLE_ADMIN 如果沒有*呢?

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2006-11-02 09:14 一餐三碗  回復(fù)  更多評論   

          @ACEGI

          *是通配符啊

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2006-12-27 01:58 夢秋雨  回復(fù)  更多評論   

          對照著例子,以及SpringSide的配置,終于看完了。對Acegi了解加深了。非常感謝作者。

          對照SpringSide,看到了一種擴(kuò)展方式,實(shí)現(xiàn)基于角色的權(quán)限控制(RBAC)。實(shí)現(xiàn)起來也還是很簡單的。將jdbcImpl配置修改如下:

          <bean id="jdbcDaoImpl"
          class="org.acegisecurity.userdetails.jdbc.JdbcDaoImpl">
          <property name="dataSource" ref="dataSource"/>
          <property name="usersByUsernameQuery">
          <value>
          select loginid,passwd,1 from ss_users where status='1' and loginid = ?
          </value>
          </property>
          <property name="authoritiesByUsernameQuery">
          <value>
          select u.loginid,p.name from ss_users u,ss_roles r,ss_permissions
          p,ss_user_role ur,ss_role_permis rp where u.id=ur.user_id and
          r.id=ur.role_id and p.id=rp.permis_id and
          r.id=rp.role_id and p.status='1' and u.loginid=?
          </value>
          </property>
          </bean>

          這樣在authoritiesByUsernameQuery查詢中就把Role聯(lián)系進(jìn)來了。

          以后有空可以好好分析一下。呵呵

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-01-01 11:26 一餐三碗  回復(fù)  更多評論   

          感謝夢秋雨的評論,其實(shí)這篇文章的代碼有點(diǎn)陳舊(畢竟是基于0.8.3版本的)而且演示的功能也是不夠全面,實(shí)際上在我后面開發(fā)的項(xiàng)目里面已經(jīng)采用acegi全面實(shí)現(xiàn)了認(rèn)證和各種資源(web resource、url、service method、root的特殊角色)的授權(quán)功能,一直想更新這篇教程就是沒時(shí)間,不過基本的思路這篇教程已經(jīng)交代的很清楚了,我相信如果認(rèn)真、完整的看完教程應(yīng)該對acegi的原理能夠基本掌握,應(yīng)用到自己的實(shí)際項(xiàng)目中去也是易如反掌的。

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-01-26 17:16 tiannet  回復(fù)  更多評論   

          為什么我用root和readonly登錄沒任何區(qū)別呢,
          所有的操作都能做。

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-01-26 17:26 一餐三碗[匿名]  回復(fù)  更多評論   

          @tiannet

          看看log信息,應(yīng)該有異常

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-01-27 08:50 tiannet  回復(fù)  更多評論   

          沒打印出什么錯(cuò)誤日志,郁悶的很:(

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-01-27 09:05 tiannet  回復(fù)  更多評論   

          我運(yùn)行在JDK1.5+Tomcat5.5下,
          應(yīng)該不會(huì)有問題吧?

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-01-27 10:05 一餐三碗  回復(fù)  更多評論   

          @tiannet
          應(yīng)該沒有問題,我的新項(xiàng)目就是用jdk1,5+Tomcat5.5,你再看看有沒有WARN或者ERROR的日志信息

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-01-29 11:01 tiannet  回復(fù)  更多評論   

          沒有哦,謝謝你的熱情回復(fù):)
          什么時(shí)候出新版的呢?
          要能提供攔截URL的就好了^_^

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-03-02 17:35 Rocky  回復(fù)  更多評論   

          你好,能否加我的QQ,31498473?謝謝(一餐三碗)

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-03-03 22:40 一餐三碗  回復(fù)  更多評論   

          @Rocky
          對不起,我不用QQ的,有問題可以在這里提出來,我盡量回答

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-03-09 15:05 gtb  回復(fù)  更多評論   

          非常感謝你的文檔和代碼對我的幫助非常大!!!祝你心情愉快,賺大錢 :)

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-03-09 19:16 tzjz  回復(fù)  更多評論   

          你好,我對acegi 還不是很熟,成功的將你的實(shí)例發(fā)布,
          但發(fā)現(xiàn)一個(gè)問題 ,當(dāng)我直接從地址欄輸入http://localhost:8080/bugTrace/contactlist.jsp
          也能進(jìn)去,該怎么解決這個(gè)問題??謝謝

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-03-09 19:30 tzjz  回復(fù)  更多評論   

          還不是anonymousProcessingFilter
          沒有起作用呀?該怎么辦?

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-03-17 21:31 llllllllllllllllllllllllll0000000000000000  回復(fù)  更多評論   

          請問下:
          我們一般的b/s系統(tǒng)中都要做個(gè)權(quán)限管理的東西,幾乎每個(gè)系統(tǒng)中都要建立“資源”“用戶”,“角色“”的東西,還要在根據(jù)業(yè)務(wù)需要建立acl,,是不是acegi用了,就可以不用在寫代碼做權(quán)限這部分了。
          謝謝。

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-03-19 09:53 一餐三碗  回復(fù)  更多評論   

          @llllllllllllllllllllllllll0000000000000000
          基本上可以大大減少和集中權(quán)限代碼,但是對于實(shí)例級權(quán)限控制我個(gè)人認(rèn)為Acegi無能為力,因?yàn)锳cegi 通過 ACL 實(shí)現(xiàn)實(shí)例級權(quán)限控制,但是在性能和效率上有很大問題,目前無法應(yīng)用到實(shí)際項(xiàng)目中去。不過換一個(gè)角度考慮:實(shí)例級權(quán)限控制應(yīng)該是業(yè)務(wù)相關(guān)的,也是可以認(rèn)為是業(yè)務(wù)代碼,這樣就沒必要把這塊代碼獨(dú)立出來了。

          相關(guān)討論可以參考JavaEye上的討論,搜索一下有很多,偷懶的話可以看看這篇:
          http://www.javaeye.com/post/165965

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-03-19 11:30 lllllllllllllllllllllllll0000000000000000   回復(fù)  更多評論   

          @一餐三碗

          謝謝老兄。

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架[未登錄] 2007-03-20 13:41 夢秋雨  回復(fù)  更多評論   

          對于根據(jù)url中的參數(shù)的值,或者方法參數(shù)的值來判斷用戶是否有權(quán)限訪問特定資源的需求,似乎目前想來已經(jīng)實(shí)現(xiàn)的只是個(gè)acl。然而acl卻又有著性能上的缺陷。所以這個(gè)地方是不是可以自己加入一個(gè)模塊,結(jié)合規(guī)則引擎,做方法參數(shù)或者url參數(shù)級別的訪問控制。

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-04-18 11:57 李賓  回復(fù)  更多評論   

          現(xiàn)在不能下載了啊

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-04-19 12:14 邊緣  回復(fù)  更多評論   

          @tiannet
          我用root和readonly登錄同樣沒有任何區(qū)別,極度郁悶啊。

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-04-19 13:03 shijh  回復(fù)  更多評論   

          我用root和readonly登錄同樣沒有任何區(qū)別,極度郁悶啊。

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-05-08 01:09 njcgf  回復(fù)  更多評論   

          我下載了文件,用mysql建立數(shù)據(jù)庫,為什么還是不能正常登錄?
          我的環(huán)境是myeclipse5+tomcat5.5.20+mysql
          步驟就是import war文件 利用myeclipse的dataexplor建立mysql數(shù)據(jù)庫連接
          mysql的用戶名和密碼都是root , 同時(shí)修改了配置文件里面的datasurce中用戶密碼為root,然后run on server
          就是提交以后不能正常登錄
          請指教,謝謝!

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-05-08 10:40 一餐三碗  回復(fù)  更多評論   

          @njcgf
          你的這種情況我沒有試過,建議你單獨(dú)將war文件部署到tomcat上面試一下,看一下有沒有異常,如果正常說明你的開發(fā)環(huán)境有問題。

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-05-09 22:54 監(jiān)聽器  回復(fù)  更多評論   

          比較實(shí)用,謝謝了

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-05-26 10:57 njcgf  回復(fù)  更多評論   

          <bean id="anonymousProcessingFilter" class="net.sf.acegisecurity.providers.anonymous.AnonymousProcessingFilter">
          <property name="key"><value>foobar</value></property>
          <property name="userAttribute"><value>anonymousUser,AUTH_ANONYMOUS</value></property>
          </bean>

          <bean id="anonymousAuthenticationProvider" class="net.sf.acegisecurity.providers.anonymous.AnonymousAuthenticationProvider">
          <property name="key"><value>foobar</value></property>
          </bean>

          這兩個(gè)bean中那個(gè)屬性值設(shè)成foobar是什么意思?是規(guī)范還是別的?謝謝!

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-07-18 18:25 任遨游  回復(fù)  更多評論   

          這個(gè)例子非常不錯(cuò),有部分朋友應(yīng)用root,readonly用戶都可以進(jìn)行編輯和刪除操作,是因?yàn)?
          select AUTHORITY,PROTECTED_RES from authorities where
          AUTH_TYPE='FUNCTION' and AUTHORITY like
          'AUTH_FUNC_ContactManager%'
          這段語句,原文中AUTHORITY是小寫的,改正后即可,我用了jdk1.6,tomcat5.5.23,acegi1.04可以正確運(yùn)行

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架[未登錄] 2007-07-22 10:19 sclsch  回復(fù)  更多評論   

          mark

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-07-22 21:24 一餐三碗  回復(fù)  更多評論   

          @任遨游
          感謝您的更正!

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-07-23 14:17 dxjsunday  回復(fù)  更多評論   

          1.2 多方面的安全控制粒度
          URL 資源訪問控制
          http://apps:8080/index.htm -> for public
          http://apps:8080/user.htm -> for authorized user
          方法調(diào)用訪問控制
          public void getData() -> all user
          public void modifyData() -> supervisor only
          對象實(shí)例保護(hù)
          order.getValue() < $100 -> all user
          order.getValue() > $100 -> supervisor only

          這是在springside看到的介紹,我想應(yīng)該可以對數(shù)據(jù)的控制吧

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-08-19 20:16 qiang  回復(fù)  更多評論   

          如何升級到1.0.4啊 我搞得怎么老師有錯(cuò)誤啊

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-08-23 17:49 上海同傳  回復(fù)  更多評論   

          如何配置和擴(kuò)展Acegi框架以適應(yīng)實(shí)際需要,是很難學(xué)懂的。上海同傳能否擴(kuò)展Acegi框架?

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-08-29 10:15 gss  回復(fù)  更多評論   

          很不錯(cuò)的例子.支持

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-08-29 15:41 gss  回復(fù)  更多評論   

          升級到1.0.4,有幾處改動(dòng).查看官方升級文檔即可...

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-09-06 14:51 figo  回復(fù)  更多評論   

          我用兩個(gè)用戶登錄時(shí)都是 登錄失敗 怎么改啊 初學(xué)者
          [WARN,LoggerListener,http-8088-Processor25] Authentication failed due to nonexistent username: root; details: net.sf.acegisecurity.ui.WebAuthenticationDetails@7be687: RemoteIpAddress: 127.0.0.1; SessionId: E88D62E33831BA7867D9A6042072735D
          [WARN,LoggerListener,http-8088-Processor25] Authentication failed due to nonexistent username: root; details: net.sf.acegisecurity.ui.WebAuthenticationDetails@1a15597: RemoteIpAddress: 127.0.0.1; SessionId: E88D62E33831BA7867D9A6042072735D
          [WARN,LoggerListener,http-8088-Processor25] Authentication failed due to nonexistent username: readonly; details: net.sf.acegisecurity.ui.WebAuthenticationDetails@1b284a4: RemoteIpAddress: 127.0.0.1; SessionId: E88D62E33831BA7867D9A6042072735D
          [WARN,LoggerListener,http-8088-Processor24] Authentication failed due to nonexistent username: root; details: net.sf.acegisecurity.ui.WebAuthenticationDetails@16ff2d9: RemoteIpAddress: 127.0.0.1; SessionId: E88D62E33831BA7867D9A6042072735D

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-09-06 17:32 figo  回復(fù)  更多評論   

          問題解決了 ^_^ 好用了
          有沒有系統(tǒng)說明文檔啊

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-09-06 17:57 figo  回復(fù)  更多評論   

          CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
          PATTERN_TYPE_APACHE_ANT
          /**=httpSessionContextIntegrationFilter,authenticationProcessingFilter,anonymousProcessingFilter,securityEnforcementFilter
          是什么意思啊

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-09-07 14:27 figo  回復(fù)  更多評論   

          權(quán)限分配是通過配置什么實(shí)現(xiàn)的啊 看不懂啊

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-12-20 09:48 kasila  回復(fù)  更多評論   

          權(quán)限表authorities中PROTECTED_RES字段的USER值不太理解
          可以解釋一下?謝謝。

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2007-12-21 22:36 技術(shù)交流  回復(fù)  更多評論   

          寫得不錯(cuò)!歡迎有一年以上j2ee實(shí)際項(xiàng)目開發(fā)經(jīng)驗(yàn)的朋友加入我們的討論群:41732384

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2008-03-10 18:16 we  回復(fù)  更多評論   

          我用兩個(gè)用戶登錄時(shí)都是 登錄失敗 怎么改啊

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2008-03-22 18:13 everyman1978  回復(fù)  更多評論   

          寫得非常好,謝謝

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2008-04-25 15:19 JACKCAO  回復(fù)  更多評論   

          配置沒什么問題,試問如果我要得到所有登錄的用戶的個(gè)數(shù),名字,和將某個(gè)用戶靜止登錄又怎么做

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2008-05-06 16:19 fogu  回復(fù)  更多評論   

          使用acegi做安全框架,web性能會(huì)有很大影響,我的項(xiàng)目加上后,勉強(qiáng)通過100并發(fā),如果不加acegi,400并發(fā)輕松通過,有人有這方面的經(jīng)驗(yàn)嗎?

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2008-05-10 16:35 joseph  回復(fù)  更多評論   

          請教一個(gè)問題,希望知道的人能給個(gè)答案,謝謝了。
          在這個(gè)項(xiàng)目中,項(xiàng)目啟動(dòng)后,我訪問首頁,如果輸入http://localhost:8000/Acegi后,AbstractSecurityInterceptor中的ConfigAttributeDefinition attr = this.obtainObjectDefinitionSource().getAttributes(object),attr含有的權(quán)限就是AUTH_USER,如果輸入http://localhost:8000/Acegi/login.jsp,attr所包含的權(quán)限就是AUTH_ANONYMOUS,這是為什么啊,這個(gè)attr的值是怎么取到的??

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2009-02-15 18:01 adsf  回復(fù)  更多評論   

          福娃免費(fèi)空間 地址 http://h.8wa.com

          # re: [原創(chuàng)]實(shí)戰(zhàn)Acegi:使用Acegi作為基于Spring框架的WEB應(yīng)用的安全框架 2009-04-20 09:56 困惑----能幫我看看為什么嗎?  回復(fù)  更多評論   

          [ERROR,ContextLoader,main] Context initialization failed
          org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sample.util.DataSourceMethodDefinitionSourceEditor#75a744' defined in ServletContext resource [/WEB-INF/applicationContext-basic.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.FatalBeanException: Could not instantiate class [sample.util.DataSourceMethodDefinitionSourceEditor]; constructor threw exception; nested exception is java.lang.Error: Unresolved compilation problems:
          The import net.sf.acegisecurity cannot be resolved
          The import net.sf.acegisecurity cannot be resolved

          如何解決呢,麻煩幫著看看啊。
          主站蜘蛛池模板: 青浦区| 沅江市| 呼伦贝尔市| 松溪县| 乌什县| 邮箱| 台北县| 濉溪县| 绥芬河市| 枣强县| 陵水| 湖北省| 法库县| 石渠县| 汉沽区| 麻栗坡县| 安陆市| 伊通| 郁南县| 萨嘎县| 化隆| 友谊县| 濮阳市| 泸定县| 宁武县| 禹城市| 封丘县| 湟中县| 普洱| 博客| 莎车县| 祁连县| 淮滨县| 汝南县| 双鸭山市| 丹凤县| 北海市| 彰武县| 马尔康县| 无棣县| 台东市|