﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-morcble的blog-文章分类-Acegi</title><link>http://www.blogjava.net/fengliangjun/category/1648.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 11:10:27 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 11:10:27 GMT</pubDate><ttl>60</ttl><item><title>今天完成的acegi8.02配置，还有不完善处，待修改</title><link>http://www.blogjava.net/fengliangjun/articles/5618.html</link><dc:creator>morcble的blog</dc:creator><author>morcble的blog</author><pubDate>Mon, 06 Jun 2005 08:50:00 GMT</pubDate><guid>http://www.blogjava.net/fengliangjun/articles/5618.html</guid><wfw:comment>http://www.blogjava.net/fengliangjun/comments/5618.html</wfw:comment><comments>http://www.blogjava.net/fengliangjun/articles/5618.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fengliangjun/comments/commentRss/5618.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fengliangjun/services/trackbacks/5618.html</trackback:ping><description><![CDATA[<P>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<BR>&lt;!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "<A href="http://www.springframework.org/dtd/spring-beans.dtd">http://www.springframework.org/dtd/spring-beans.dtd</A>"&gt;<BR>&lt;beans&gt;<BR>&nbsp;<BR>&lt;bean id="authenticationDao" class="net.sf.acegisecurity.providers.dao.jdbc.JdbcDaoImpl"&gt;<BR>&nbsp; &lt;property name="dataSource"&gt;&lt;ref bean="dataSource"/&gt;&lt;/property&gt;<BR>&lt;/bean&gt;</P>
<P>&lt;bean id="inMemoryDaoImpl" class="net.sf.acegisecurity.providers.dao.memory.InMemoryDaoImpl"&gt;<BR>&nbsp; &lt;property name="userMap"&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;value&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; admin=admin,ROLE_TELLER,ROLE_SUPERVISOR&nbsp;&nbsp; &lt;!--用户=密码，角色，角色，--&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dianne=emu,ROLE_TELLER<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scott=wombat,ROLE_TELLER<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; peter=opal,disabled,ROLE_TELLER<BR>&nbsp;&nbsp;&nbsp; &lt;/value&gt;<BR>&nbsp; &lt;/property&gt;<BR>&lt;/bean&gt;</P>
<P>&lt;!--##########类控制开始##########--&gt;<BR>&lt;bean id="bankManagerSecurity" class="net.sf.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor"&gt;<BR>&nbsp; &lt;property name="validateConfigAttributes"&gt;&lt;value&gt;true&lt;/value&gt;&lt;/property&gt;<BR>&nbsp; &lt;property name="authenticationManager"&gt;&lt;ref bean="authenticationManager"/&gt;&lt;/property&gt;&lt;!--100行--&gt;<BR>&nbsp; &lt;property name="accessDecisionManager"&gt;&lt;ref bean="accessDecisionManager"/&gt;&lt;/property&gt;&lt;!--136行--&gt;<BR>&nbsp; &lt;property name="runAsManager"&gt;&lt;ref bean="runAsManager"/&gt;&lt;/property&gt;<BR>&nbsp; &lt;!--&lt;property name="afterInvocationManager"&gt;&lt;ref bean="afterInvocationManager"/&gt;&lt;/property&gt;--&gt;<BR>&nbsp; &lt;property name="objectDefinitionSource"&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;value&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; test.test1.delete*=ROLE_SUPERVISOR,ROLE_TELLER&lt;!--控制 net.sf.acegisecurity.context.BankManager类的方法权限--&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; test.test1.getBalance=ROLE_TELLER<BR>&nbsp;&nbsp;&nbsp; &lt;/value&gt;<BR>&nbsp; &lt;/property&gt;<BR>&lt;/bean&gt;<BR>&lt;!--##########类控制结束##########--&gt;</P>
<P>&lt;!--<BR>#################################################################################<BR>###################http__authentication开始######################################<BR>##################AuthenticationProcessingFilter#################################<BR>#################################################################################<BR>--&gt;<BR>&lt;!--</P>
<P>&nbsp;--&gt;</P>
<P>&lt;bean id="authenticationProcessingFilter" class="net.sf.acegisecurity.ui.webapp.AuthenticationProcessingFilter"&gt;<BR>&nbsp; &lt;property name="authenticationManager"&gt;&lt;ref bean="authenticationManager"/&gt;&lt;/property&gt;<BR>&nbsp; &lt;property name="authenticationFailureUrl"&gt;&lt;value&gt;/login.jsp?login_error=1&lt;/value&gt;&lt;/property&gt;<BR>&nbsp; &lt;property name="defaultTargetUrl"&gt;&lt;value&gt;/success.jsp&lt;/value&gt;&lt;/property&gt;<BR>&nbsp; &lt;property name="filterProcessesUrl"&gt;&lt;value&gt;/j_acegi_security_check&lt;/value&gt;&lt;/property&gt;<BR>&lt;/bean&gt;<BR>&lt;!--<BR>#################################################################################<BR>##################http__authentication结束########################################<BR>##################AuthenticationProcessingFilter#################################<BR>#################################################################################<BR>--&gt;</P>
<P>&lt;!--filter控制&nbsp; 要在web.xml中配置相应的filter&nbsp; HTTP REQUEST SECURITY--&gt;<BR>&nbsp; &lt;!--<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;filter&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;filter-name&gt;Acegi HTTP Request Security Filter&lt;/filter-name&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;filter-class&gt;net.sf.acegisecurity.util.FilterToBeanProxy&lt;/filter-class&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;init-param&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;targetClass&lt;/param-name&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;net.sf.acegisecurity.intercept.web.SecurityEnforcementFilter&lt;/param-value&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/filter&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;filter-mapping&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;filter-name&gt;Acegi HTTP Request Security Filter&lt;/filter-name&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/*&lt;/url-pattern&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/filter-mapping&gt;<BR>&nbsp;&nbsp; --&gt;</P>
<P>&lt;!--#################################################################################<BR>--&gt;<BR>&lt;bean id="securityEnforcementFilter"&nbsp; class="net.sf.acegisecurity.intercept.web.SecurityEnforcementFilter"&gt;<BR>&nbsp; &lt;property name="filterSecurityInterceptor"&gt;&lt;ref bean="filterInvocationInterceptor"/&gt;&lt;/property&gt;<BR>&nbsp; &lt;property name="authenticationEntryPoint"&gt;&lt;ref bean="authenticationEntryPoint"/&gt;&lt;/property&gt;<BR>&lt;/bean&gt;</P>
<P>&lt;!--如果用户没有授权 则提醒用户注册&nbsp; 注册页面acegilogin.jsp--&gt;<BR>&lt;bean id="authenticationEntryPoint" class="net.sf.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint"&gt;<BR>&nbsp; &lt;property name="loginFormUrl"&gt;&lt;value&gt;/login.jsp&lt;/value&gt;&lt;/property&gt;<BR>&nbsp; &lt;property name="forceHttps"&gt;&lt;value&gt;false&lt;/value&gt;&lt;/property&gt;<BR>&lt;/bean&gt;</P>
<P>&lt;bean id="filterInvocationInterceptor" class="net.sf.acegisecurity.intercept.web.FilterSecurityInterceptor"&gt;<BR>&nbsp; &lt;property name="authenticationManager"&gt;&lt;ref bean="authenticationManager"/&gt;&lt;/property&gt;<BR>&nbsp; &lt;property name="accessDecisionManager"&gt;&lt;ref bean="accessDecisionManager"/&gt;&lt;/property&gt;<BR>&nbsp; &lt;property name="runAsManager"&gt;&lt;ref bean="runAsManager"/&gt;&lt;/property&gt;<BR>&nbsp; &lt;property name="objectDefinitionSource"&gt;<BR>&nbsp;&nbsp; &lt;value&gt;<BR>&nbsp;&nbsp;&nbsp; CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON<BR>&nbsp;&nbsp;&nbsp; \A/secure/super/.*\Z=ROLE_TELLER<BR>&nbsp;&nbsp;&nbsp; \A/secure/.*\Z=ROLE_SUPERVISOR,ROLE_TELLER<BR>&nbsp;&nbsp; &lt;/value&gt;<BR>&nbsp; &lt;/property&gt;<BR>&lt;/bean&gt;<BR>&lt;!--#################################################################################<BR>--&gt;</P>
<P>&lt;bean id="authenticationManager" class="net.sf.acegisecurity.providers.ProviderManager"&gt;<BR>&nbsp;&nbsp; &lt;property name="providers"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;list&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ref bean="daoAuthenticationProvider"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/list&gt;<BR>&nbsp;&nbsp; &lt;/property&gt;<BR>&nbsp;&nbsp; &lt;property name="sessionController"&gt;&lt;ref bean="concurrentSessionController"/&gt;&lt;/property&gt;&lt;!--禁止同一帐号重复登陆系统（可选）--&gt;<BR>&lt;/bean&gt;</P>
<P>&lt;bean id="daoAuthenticationProvider" class="net.sf.acegisecurity.providers.dao.DaoAuthenticationProvider"&gt;<BR>&nbsp;&nbsp; &lt;property name="authenticationDao"&gt;&lt;ref bean="authenticationDao"/&gt;&lt;/property&gt;&lt;!--若属性为inMemoryDaoImpl 则是存在内存当中的权限--&gt;<BR>&nbsp;&nbsp; &lt;property name="userCache"&gt;&lt;ref local="userCache"/&gt;&lt;/property&gt;<BR>&nbsp;&nbsp; &lt;property name="passwordEncoder"&gt;&lt;ref bean="passwordEncoder"/&gt;&lt;/property&gt;&lt;!--密码加密--&gt;<BR>&lt;/bean&gt;</P>
<P>&lt;bean id="userCache" class="net.sf.acegisecurity.providers.dao.cache.EhCacheBasedUserCache"&gt;<BR>&nbsp;&nbsp;&lt;property name="cache"&gt;&lt;ref local="userCacheBackend"/&gt;&lt;/property&gt;<BR>&lt;/bean&gt;</P>
<P>&lt;bean id="userCacheBackend" class="org.springframework.cache.ehcache.EhCacheFactoryBean"&gt;<BR>&nbsp;&nbsp; &lt;property name="cacheManager"&gt;<BR>&nbsp;&nbsp;&lt;ref local="cacheManager"/&gt;<BR>&nbsp;&nbsp; &lt;/property&gt;<BR>&nbsp;&nbsp; &lt;property name="cacheName"&gt;<BR>&nbsp;&nbsp;&lt;value&gt;userCache&lt;/value&gt;<BR>&nbsp;&nbsp; &lt;/property&gt;<BR>&lt;/bean&gt;&nbsp;&nbsp; <BR>&lt;bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"/&gt;&nbsp;</P>
<P>&lt;bean id="concurrentSessionController" class="net.sf.acegisecurity.providers.ConcurrentSessionControllerImpl"&gt;<BR>&nbsp;&nbsp; &lt;property name="maxSessions"&gt;&lt;value&gt;1&lt;/value&gt;&lt;/property&gt;<BR>&lt;/bean&gt;</P>
<P>&nbsp;&lt;!--定义一个验证方法--&gt;<BR>&nbsp;&lt;bean id="roleVoter" class="net.sf.acegisecurity.vote.RoleVoter"/&gt;<BR>&nbsp;&nbsp; &lt;!--具体的授权--&gt;<BR>&nbsp;&lt;bean id="accessDecisionManager" class="net.sf.acegisecurity.vote.AffirmativeBased"&gt;<BR>&nbsp;&nbsp; &nbsp;&nbsp;&lt;property name="allowIfAllAbstainDecisions"&gt;&lt;value&gt;false&lt;/value&gt;&lt;/property&gt;<BR>&nbsp;&nbsp;&lt;property name="decisionVoters"&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;list&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ref bean="roleVoter"/&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/list&gt;<BR>&nbsp;&nbsp;&lt;/property&gt;<BR>&nbsp;&lt;/bean&gt;<BR>&nbsp;<BR>&lt;bean id="passwordEncoder" class="net.sf.acegisecurity.providers.encoding.Md5PasswordEncoder"/&gt;&lt;!--MD5法加密--&gt;</P>
<P>&nbsp;</P>
<P>&lt;!--页面安全通道--&gt;<BR>&lt;bean id="channelProcessingFilter" class="net.sf.acegisecurity.securechannel.ChannelProcessingFilter"&gt;<BR>&nbsp; &lt;property name="channelDecisionManager"&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;ref bean="channelDecisionManager"/&gt;<BR>&nbsp; &lt;/property&gt;<BR>&nbsp; &lt;property name="filterInvocationDefinitionSource"&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;value&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \A/sec/administrator.*\Z=REQUIRES_SECURE_CHANNEL<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \A/acegilogin.jsp.*\Z=REQUIRES_SECURE_CHANNEL<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \A/j_acegi_security_check.*\Z=REQUIRES_SECURE_CHANNEL<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \A.*\Z=REQUIRES_INSECURE_CHANNEL<BR>&nbsp;&nbsp;&nbsp; &lt;/value&gt;<BR>&nbsp; &lt;/property&gt;<BR>&lt;/bean&gt;</P>
<P>&lt;bean id="channelDecisionManager" class="net.sf.acegisecurity.securechannel.ChannelDecisionManagerImpl"&gt;<BR>&nbsp; &lt;property name="channelProcessors"&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;list&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ref bean="secureChannelProcessor"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ref bean="insecureChannelProcessor"/&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/list&gt;<BR>&nbsp; &lt;/property&gt;<BR>&lt;/bean&gt;<BR>&lt;bean id="secureChannelProcessor" class="net.sf.acegisecurity.securechannel.SecureChannelProcessor"/&gt;<BR>&lt;bean id="insecureChannelProcessor" class="net.sf.acegisecurity.securechannel.InsecureChannelProcessor"/&gt;<BR>&lt;bean id="runAsManager" class="net.sf.acegisecurity.runas.RunAsManagerImpl"&gt;<BR>&nbsp;&nbsp; &lt;property name="key"&gt;&lt;value&gt;my_run_as_password&lt;/value&gt;&lt;/property&gt;<BR>&lt;/bean&gt;<BR>&lt;/beans&gt;<BR></P><img src ="http://www.blogjava.net/fengliangjun/aggbug/5618.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fengliangjun/" target="_blank">morcble的blog</a> 2005-06-06 16:50 <a href="http://www.blogjava.net/fengliangjun/articles/5618.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>