這兩天嘗試整合一下Acegi、Spring和Struts。配置文件如下:
web.xml文件內(nèi)容詳細:
?Acegi Sample Application
?
?
??contextConfigLocation
??
???/WEB-INF/applicationContext.xml
???/WEB-INF/applicationContext-acegi.xml
??
?
?
??log4jConfigLocation
??/WEB-INF/classes/log4j.properties
?
?
?
??Acegi Filter Chain Proxy
??
???net.sf.acegisecurity.util.FilterToBeanProxy
??
??
???targetClass
???
????net.sf.acegisecurity.util.FilterChainProxy
???
??
?
?
??Acegi Filter Chain Proxy
??/*
?
?
?
??
???org.springframework.web.context.ContextLoaderListener
??
?
?
??
???org.springframework.web.util.Log4jConfigListener
??
?
?
?
?
??action
??
???org.apache.struts.action.ActionServlet
??
??
???config
???/WEB-INF/struts-config.xml
??
??
???debug
???3
??
??
???detail
???3
??
??0
?
?
??action
??*.do
?
spring的配置文件我分為兩個:
一個是applicationContext.xml,配置了spring整合Hibernate的部分,包括Datasource和DAO部分,內(nèi)容如下:
??class="org.apache.commons.dbcp.BasicDataSource"
??destroy-method="close">
??
???com.mysql.jdbc.Driver
??
??
???jdbc:mysql://localhost/lcdis
??
??
???root
??
??
???
??
?
???class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
??
???
????com/laf/bo/Example.hbm.xml
???
??
??
???
????
?????org.hibernate.dialect.MySQLDialect
????
????true
????
?????true
????
???
??
??
???
??
?
???class="org.springframework.orm.hibernate3.HibernateTransactionManager">
??
???
??
?
???class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
??
???
??
??
???
??
??
???
????
?????PROPAGATION_REQUIRED,readOnly,-BusinessException
????
????
?????PROPAGATION_REQUIRED,-BusinessException
????
????
?????PROPAGATION_REQUIRED,-BusinessException
????
????
?????PROPAGATION_REQUIRED,-BusinessException
????
???
??
?
???class="com.laf.bd.BusinessServiceImpl">
??
???
??
?
?
??
???
??
?
另外一個.xml,配置了Acegi相關內(nèi)容:
??of "httpSessionContextIntegrationFilter" in the list below -->
???class="net.sf.acegisecurity.util.FilterChainProxy">
??
???
????CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
????PATTERN_TYPE_APACHE_ANT
????/**=httpSessionContextIntegrationFilter,authenticationProcessingFilter,?securityEnforcementFilter
???
??
?
???class="net.sf.acegisecurity.ui.webapp.AuthenticationProcessingFilter">
??
???
??
??
???/login.jsp
??
??
???/
??
??
???/j_acegi_security_check.do
??
?
???class="net.sf.acegisecurity.providers.ProviderManager">
??
???
????
???
??
?
???class="net.sf.acegisecurity.providers.dao.DaoAuthenticationProvider">
??
???
??
??
???
??
??
?
???class="net.sf.acegisecurity.providers.dao.jdbc.JdbcDaoImpl">
??
???
??
?
???class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" />
???class="org.springframework.cache.ehcache.EhCacheFactoryBean">
??
???
??
??
???userCache
??
?
???class="net.sf.acegisecurity.providers.dao.cache.EhCacheBasedUserCache">
??
???
??
?
???class="net.sf.acegisecurity.providers.encoding.Md5PasswordEncoder">
?
???class="net.sf.acegisecurity.providers.anonymous.AnonymousProcessingFilter">
??
???foobar
??
??
???anonymousUser,ROLE_ANONYMOUS
??
?
???class="net.sf.acegisecurity.providers.anonymous.AnonymousAuthenticationProvider">
??
???foobar
??
?
???class="net.sf.acegisecurity.context.HttpSessionContextIntegrationFilter">
??
???
????net.sf.acegisecurity.context.security.SecureContextImpl
???
??
?
?
???class="net.sf.acegisecurity.intercept.web.SecurityEnforcementFilter">
??
???
??
??
???
??
?
?
???class="net.sf.acegisecurity.vote.AffirmativeBased">
??
???false
??
??
???
????
???
??
?
?
???class="net.sf.acegisecurity.intercept.web.FilterSecurityInterceptor">
??
???
??
??
???
??
??
???
????CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
????PATTERN_TYPE_APACHE_ANT
????/index.jsp=ROLE_SUPERVISOR
????/hello.jsp=ROLE_TELLER
????/*.do=ROLE_TELLER
???
??
?
???class="net.sf.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint">
??
???/login.jsp
??
??
???false
??
?
注意兩處顏色不同的部分配置,是Acegi需要配合struts的內(nèi)容。
Spring的配置我這里就不詳細描述,這里主要談談對Acegi的看法。
我用的是Acegi0.8.3,目前是最新版。可以到項目主頁下載:http://acegisecurity.sourceforge.net/?
各位也看到了,Acegi的配置還是比較復雜,要了解幾個主要的類,如下圖:

如果嫌麻煩,就直接拷貝過去使用就可以了。只要修改objectDefinitionSource部分的權限配置就行。
再附上登錄頁面login.jsp的片斷:
???
??? ?
??? ?? ??? ???User: ??? ?? |
??? ?
??? ?
??? ?? ??? ???Password: ??? ?? |
??? ?
??? ?
??? ?? ??? ??? ??? ?? |
??? ?
???
???
粗淺研究,首次涂鴉,希望有些可以供人參考之處,上面內(nèi)容有很多寫的不夠詳盡,各位看官可以留言,或發(fā)郵件共同探討。
posted on 2005-10-27 00:06
風蕭蕭 閱讀(1861)
評論(5) 編輯 收藏 所屬分類:
原創(chuàng)