Improved sample applications' bean reference notation.

This commit is contained in:
Ben Alex 2004-09-24 00:47:53 +00:00
parent 62f168d85b
commit 6b54784915
6 changed files with 100 additions and 99 deletions

View File

@ -7,6 +7,7 @@ Changes in version 0.x (2004-xx-xx)
* Added PasswordAuthenticationProvider for password-validating DAOs (eg LDAP) * Added PasswordAuthenticationProvider for password-validating DAOs (eg LDAP)
* Added FilterToBeanProxy compatibility with ContextLoaderServlet (lazy inits) * Added FilterToBeanProxy compatibility with ContextLoaderServlet (lazy inits)
* Added convenience methods to ConfigAttributeDefinition * Added convenience methods to ConfigAttributeDefinition
* Improved sample applications' bean reference notation
* Clarified contract for ObjectDefinitionSource.getAttributes(Object) * Clarified contract for ObjectDefinitionSource.getAttributes(Object)
* Extracted removeUserFromCache(String) to UserCache interface * Extracted removeUserFromCache(String) to UserCache interface
* Improved ConfigAttributeEditor so it trims preceding and trailing spaces * Improved ConfigAttributeEditor so it trims preceding and trailing spaces

View File

@ -37,7 +37,7 @@
<bean id="authenticationManager" class="net.sf.acegisecurity.providers.ProviderManager"> <bean id="authenticationManager" class="net.sf.acegisecurity.providers.ProviderManager">
<property name="providers"> <property name="providers">
<list> <list>
<ref bean="testingAuthenticationProvider"/> <ref local="testingAuthenticationProvider"/>
</list> </list>
</property> </property>
</bean> </bean>
@ -52,7 +52,7 @@
<property name="allowIfAllAbstainDecisions"><value>false</value></property> <property name="allowIfAllAbstainDecisions"><value>false</value></property>
<property name="decisionVoters"> <property name="decisionVoters">
<list> <list>
<ref bean="roleVoter"/> <ref local="roleVoter"/>
</list> </list>
</property> </property>
</bean> </bean>
@ -67,10 +67,10 @@
<!-- We don't validate config attributes, as it's unsupported by MethodDefinitionAttributes --> <!-- We don't validate config attributes, as it's unsupported by MethodDefinitionAttributes -->
<bean id="securityInterceptor" class="net.sf.acegisecurity.intercept.method.MethodSecurityInterceptor"> <bean id="securityInterceptor" class="net.sf.acegisecurity.intercept.method.MethodSecurityInterceptor">
<property name="validateConfigAttributes"><value>false</value></property> <property name="validateConfigAttributes"><value>false</value></property>
<property name="authenticationManager"><ref bean="authenticationManager"/></property> <property name="authenticationManager"><ref local="authenticationManager"/></property>
<property name="accessDecisionManager"><ref bean="accessDecisionManager"/></property> <property name="accessDecisionManager"><ref local="accessDecisionManager"/></property>
<property name="runAsManager"><ref bean="runAsManager"/></property> <property name="runAsManager"><ref local="runAsManager"/></property>
<property name="objectDefinitionSource"><ref bean="objectDefinitionSource"/></property> <property name="objectDefinitionSource"><ref local="objectDefinitionSource"/></property>
</bean> </bean>
<bean id="bankService" class="sample.attributes.BankServiceImpl"/> <bean id="bankService" class="sample.attributes.BankServiceImpl"/>
@ -86,7 +86,7 @@
<!-- the bean names to automatically generate proxies for --> <!-- the bean names to automatically generate proxies for -->
<property name="beanNames"> <property name="beanNames">
<list> <list>
<value>bankService</value> <idref local="bankService"/>
</list> </list>
</property> </property>
</bean> </bean>

View File

@ -28,9 +28,9 @@
<bean id="authenticationManager" class="net.sf.acegisecurity.providers.ProviderManager"> <bean id="authenticationManager" class="net.sf.acegisecurity.providers.ProviderManager">
<property name="providers"> <property name="providers">
<list> <list>
<ref bean="runAsAuthenticationProvider"/> <ref local="runAsAuthenticationProvider"/>
<ref bean="authByAdapterProvider"/> <ref local="authByAdapterProvider"/>
<ref bean="daoAuthenticationProvider"/> <ref local="daoAuthenticationProvider"/>
</list> </list>
</property> </property>
</bean> </bean>
@ -47,12 +47,12 @@
</bean> </bean>
<bean id="daoAuthenticationProvider" class="net.sf.acegisecurity.providers.dao.DaoAuthenticationProvider"> <bean id="daoAuthenticationProvider" class="net.sf.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="authenticationDao"><ref bean="inMemoryDaoImpl"/></property> <property name="authenticationDao"><ref local="inMemoryDaoImpl"/></property>
</bean> </bean>
<bean id="basicProcessingFilter" class="net.sf.acegisecurity.ui.basicauth.BasicProcessingFilter"> <bean id="basicProcessingFilter" class="net.sf.acegisecurity.ui.basicauth.BasicProcessingFilter">
<property name="authenticationManager"><ref bean="authenticationManager"/></property> <property name="authenticationManager"><ref local="authenticationManager"/></property>
<property name="authenticationEntryPoint"><ref bean="basicProcessingFilterEntryPoint"/></property> <property name="authenticationEntryPoint"><ref local="basicProcessingFilterEntryPoint"/></property>
</bean> </bean>
<bean id="basicProcessingFilterEntryPoint" class="net.sf.acegisecurity.ui.basicauth.BasicProcessingFilterEntryPoint"> <bean id="basicProcessingFilterEntryPoint" class="net.sf.acegisecurity.ui.basicauth.BasicProcessingFilterEntryPoint">
@ -74,8 +74,8 @@
<property name="allowIfAllAbstainDecisions"><value>false</value></property> <property name="allowIfAllAbstainDecisions"><value>false</value></property>
<property name="decisionVoters"> <property name="decisionVoters">
<list> <list>
<ref bean="roleVoter"/> <ref local="roleVoter"/>
<ref bean="contactSecurityVoter"/> <ref local="contactSecurityVoter"/>
</list> </list>
</property> </property>
</bean> </bean>
@ -83,9 +83,9 @@
<!-- ===================== SECURITY DEFINITIONS ======================= --> <!-- ===================== SECURITY DEFINITIONS ======================= -->
<bean id="publicContactManagerSecurity" class="net.sf.acegisecurity.intercept.method.MethodSecurityInterceptor"> <bean id="publicContactManagerSecurity" class="net.sf.acegisecurity.intercept.method.MethodSecurityInterceptor">
<property name="authenticationManager"><ref bean="authenticationManager"/></property> <property name="authenticationManager"><ref local="authenticationManager"/></property>
<property name="accessDecisionManager"><ref bean="businessAccessDecisionManager"/></property> <property name="accessDecisionManager"><ref local="businessAccessDecisionManager"/></property>
<property name="runAsManager"><ref bean="runAsManager"/></property> <property name="runAsManager"><ref local="runAsManager"/></property>
<property name="objectDefinitionSource"> <property name="objectDefinitionSource">
<value> <value>
sample.contact.ContactManager.delete=ROLE_SUPERVISOR,RUN_AS_SERVER sample.contact.ContactManager.delete=ROLE_SUPERVISOR,RUN_AS_SERVER
@ -98,9 +98,9 @@
<!-- We expect all callers of the backend object to hold the role ROLE_RUN_AS_SERVER --> <!-- We expect all callers of the backend object to hold the role ROLE_RUN_AS_SERVER -->
<bean id="backendContactManagerSecurity" class="net.sf.acegisecurity.intercept.method.MethodSecurityInterceptor"> <bean id="backendContactManagerSecurity" class="net.sf.acegisecurity.intercept.method.MethodSecurityInterceptor">
<property name="authenticationManager"><ref bean="authenticationManager"/></property> <property name="authenticationManager"><ref local="authenticationManager"/></property>
<property name="accessDecisionManager"><ref bean="businessAccessDecisionManager"/></property> <property name="accessDecisionManager"><ref local="businessAccessDecisionManager"/></property>
<property name="runAsManager"><ref bean="runAsManager"/></property> <property name="runAsManager"><ref local="runAsManager"/></property>
<property name="objectDefinitionSource"> <property name="objectDefinitionSource">
<value> <value>
sample.contact.ContactManager.delete=ROLE_RUN_AS_SERVER sample.contact.ContactManager.delete=ROLE_RUN_AS_SERVER
@ -117,22 +117,22 @@
<property name="proxyInterfaces"><value>sample.contact.ContactManager</value></property> <property name="proxyInterfaces"><value>sample.contact.ContactManager</value></property>
<property name="interceptorNames"> <property name="interceptorNames">
<list> <list>
<value>publicContactManagerSecurity</value> <idref local="publicContactManagerSecurity"/>
<value>publicContactManagerTarget</value> <idref local="publicContactManagerTarget"/>
</list> </list>
</property> </property>
</bean> </bean>
<bean id="publicContactManagerTarget" class="sample.contact.ContactManagerFacade"> <bean id="publicContactManagerTarget" class="sample.contact.ContactManagerFacade">
<property name="backend"><ref bean="backendContactManager"/></property> <property name="backend"><ref local="backendContactManager"/></property>
</bean> </bean>
<bean id="backendContactManager" class="org.springframework.aop.framework.ProxyFactoryBean"> <bean id="backendContactManager" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces"><value>sample.contact.ContactManager</value></property> <property name="proxyInterfaces"><value>sample.contact.ContactManager</value></property>
<property name="interceptorNames"> <property name="interceptorNames">
<list> <list>
<value>backendContactManagerSecurity</value> <idref local="backendContactManagerSecurity"/>
<value>backendContactManagerTarget</value> <idref local="backendContactManagerTarget"/>
</list> </list>
</property> </property>
</bean> </bean>

View File

@ -24,8 +24,8 @@
<bean id="authenticationManager" class="net.sf.acegisecurity.providers.ProviderManager"> <bean id="authenticationManager" class="net.sf.acegisecurity.providers.ProviderManager">
<property name="providers"> <property name="providers">
<list> <list>
<ref bean="runAsAuthenticationProvider"/> <ref local="runAsAuthenticationProvider"/>
<ref bean="casAuthenticationProvider"/> <ref local="casAuthenticationProvider"/>
</list> </list>
</property> </property>
</bean> </bean>
@ -42,8 +42,8 @@
</bean> </bean>
<bean id="basicProcessingFilter" class="net.sf.acegisecurity.ui.basicauth.BasicProcessingFilter"> <bean id="basicProcessingFilter" class="net.sf.acegisecurity.ui.basicauth.BasicProcessingFilter">
<property name="authenticationManager"><ref bean="authenticationManager"/></property> <property name="authenticationManager"><ref local="authenticationManager"/></property>
<property name="authenticationEntryPoint"><ref bean="basicProcessingFilterEntryPoint"/></property> <property name="authenticationEntryPoint"><ref local="basicProcessingFilterEntryPoint"/></property>
</bean> </bean>
<bean id="basicProcessingFilterEntryPoint" class="net.sf.acegisecurity.ui.basicauth.BasicProcessingFilterEntryPoint"> <bean id="basicProcessingFilterEntryPoint" class="net.sf.acegisecurity.ui.basicauth.BasicProcessingFilterEntryPoint">
@ -53,17 +53,17 @@
<bean id="autoIntegrationFilter" class="net.sf.acegisecurity.ui.AutoIntegrationFilter" /> <bean id="autoIntegrationFilter" class="net.sf.acegisecurity.ui.AutoIntegrationFilter" />
<bean id="casAuthenticationProvider" class="net.sf.acegisecurity.providers.cas.CasAuthenticationProvider"> <bean id="casAuthenticationProvider" class="net.sf.acegisecurity.providers.cas.CasAuthenticationProvider">
<property name="casAuthoritiesPopulator"><ref bean="casAuthoritiesPopulator"/></property> <property name="casAuthoritiesPopulator"><ref local="casAuthoritiesPopulator"/></property>
<property name="casProxyDecider"><ref bean="casProxyDecider"/></property> <property name="casProxyDecider"><ref local="casProxyDecider"/></property>
<property name="ticketValidator"><ref bean="casProxyTicketValidator"/></property> <property name="ticketValidator"><ref local="casProxyTicketValidator"/></property>
<property name="statelessTicketCache"><ref bean="statelessTicketCache"/></property> <property name="statelessTicketCache"><ref local="statelessTicketCache"/></property>
<property name="key"><value>my_password_for_this_auth_provider_only</value></property> <property name="key"><value>my_password_for_this_auth_provider_only</value></property>
</bean> </bean>
<bean id="casProxyTicketValidator" class="net.sf.acegisecurity.providers.cas.ticketvalidator.CasProxyTicketValidator"> <bean id="casProxyTicketValidator" class="net.sf.acegisecurity.providers.cas.ticketvalidator.CasProxyTicketValidator">
<property name="casValidate"><value>https://localhost:8443/cas/proxyValidate</value></property> <property name="casValidate"><value>https://localhost:8443/cas/proxyValidate</value></property>
<property name="proxyCallbackUrl"><value>https://localhost:8443/contacts-cas/casProxy/receptor</value></property> <property name="proxyCallbackUrl"><value>https://localhost:8443/contacts-cas/casProxy/receptor</value></property>
<property name="serviceProperties"><ref bean="serviceProperties"/></property> <property name="serviceProperties"><ref local="serviceProperties"/></property>
<!-- <property name="trustStore"><value>/some/path/to/your/lib/security/cacerts</value></property> --> <!-- <property name="trustStore"><value>/some/path/to/your/lib/security/cacerts</value></property> -->
</bean> </bean>
@ -72,7 +72,7 @@
</bean> </bean>
<bean id="casAuthoritiesPopulator" class="net.sf.acegisecurity.providers.cas.populator.DaoCasAuthoritiesPopulator"> <bean id="casAuthoritiesPopulator" class="net.sf.acegisecurity.providers.cas.populator.DaoCasAuthoritiesPopulator">
<property name="authenticationDao"><ref bean="inMemoryDaoImpl"/></property> <property name="authenticationDao"><ref local="inMemoryDaoImpl"/></property>
</bean> </bean>
<bean id="casProxyDecider" class="net.sf.acegisecurity.providers.cas.proxy.RejectProxyTickets"> <bean id="casProxyDecider" class="net.sf.acegisecurity.providers.cas.proxy.RejectProxyTickets">
@ -96,8 +96,8 @@
<property name="allowIfAllAbstainDecisions"><value>false</value></property> <property name="allowIfAllAbstainDecisions"><value>false</value></property>
<property name="decisionVoters"> <property name="decisionVoters">
<list> <list>
<ref bean="roleVoter"/> <ref local="roleVoter"/>
<ref bean="contactSecurityVoter"/> <ref local="contactSecurityVoter"/>
</list> </list>
</property> </property>
</bean> </bean>
@ -105,9 +105,9 @@
<!-- ===================== SECURITY DEFINITIONS ======================= --> <!-- ===================== SECURITY DEFINITIONS ======================= -->
<bean id="publicContactManagerSecurity" class="net.sf.acegisecurity.intercept.method.MethodSecurityInterceptor"> <bean id="publicContactManagerSecurity" class="net.sf.acegisecurity.intercept.method.MethodSecurityInterceptor">
<property name="authenticationManager"><ref bean="authenticationManager"/></property> <property name="authenticationManager"><ref local="authenticationManager"/></property>
<property name="accessDecisionManager"><ref bean="businessAccessDecisionManager"/></property> <property name="accessDecisionManager"><ref local="businessAccessDecisionManager"/></property>
<property name="runAsManager"><ref bean="runAsManager"/></property> <property name="runAsManager"><ref local="runAsManager"/></property>
<property name="objectDefinitionSource"> <property name="objectDefinitionSource">
<value> <value>
sample.contact.ContactManager.delete=ROLE_SUPERVISOR,RUN_AS_SERVER sample.contact.ContactManager.delete=ROLE_SUPERVISOR,RUN_AS_SERVER
@ -120,9 +120,9 @@
<!-- We expect all callers of the backend object to hold the role ROLE_RUN_AS_SERVER --> <!-- We expect all callers of the backend object to hold the role ROLE_RUN_AS_SERVER -->
<bean id="backendContactManagerSecurity" class="net.sf.acegisecurity.intercept.method.MethodSecurityInterceptor"> <bean id="backendContactManagerSecurity" class="net.sf.acegisecurity.intercept.method.MethodSecurityInterceptor">
<property name="authenticationManager"><ref bean="authenticationManager"/></property> <property name="authenticationManager"><ref local="authenticationManager"/></property>
<property name="accessDecisionManager"><ref bean="businessAccessDecisionManager"/></property> <property name="accessDecisionManager"><ref local="businessAccessDecisionManager"/></property>
<property name="runAsManager"><ref bean="runAsManager"/></property> <property name="runAsManager"><ref local="runAsManager"/></property>
<property name="objectDefinitionSource"> <property name="objectDefinitionSource">
<value> <value>
sample.contact.ContactManager.delete=ROLE_RUN_AS_SERVER sample.contact.ContactManager.delete=ROLE_RUN_AS_SERVER
@ -139,22 +139,22 @@
<property name="proxyInterfaces"><value>sample.contact.ContactManager</value></property> <property name="proxyInterfaces"><value>sample.contact.ContactManager</value></property>
<property name="interceptorNames"> <property name="interceptorNames">
<list> <list>
<value>publicContactManagerSecurity</value> <idref local="publicContactManagerSecurity"/>
<value>publicContactManagerTarget</value> <idref local="publicContactManagerTarget"/>
</list> </list>
</property> </property>
</bean> </bean>
<bean id="publicContactManagerTarget" class="sample.contact.ContactManagerFacade"> <bean id="publicContactManagerTarget" class="sample.contact.ContactManagerFacade">
<property name="backend"><ref bean="backendContactManager"/></property> <property name="backend"><ref local="backendContactManager"/></property>
</bean> </bean>
<bean id="backendContactManager" class="org.springframework.aop.framework.ProxyFactoryBean"> <bean id="backendContactManager" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces"><value>sample.contact.ContactManager</value></property> <property name="proxyInterfaces"><value>sample.contact.ContactManager</value></property>
<property name="interceptorNames"> <property name="interceptorNames">
<list> <list>
<value>backendContactManagerSecurity</value> <idref local="backendContactManagerSecurity"/>
<value>backendContactManagerTarget</value> <idref local="backendContactManagerTarget"/>
</list> </list>
</property> </property>
</bean> </bean>
@ -164,7 +164,7 @@
<!-- ===================== HTTP CHANNEL REQUIREMENTS ==================== --> <!-- ===================== HTTP CHANNEL REQUIREMENTS ==================== -->
<bean id="channelProcessingFilter" class="net.sf.acegisecurity.securechannel.ChannelProcessingFilter"> <bean id="channelProcessingFilter" class="net.sf.acegisecurity.securechannel.ChannelProcessingFilter">
<property name="channelDecisionManager"><ref bean="channelDecisionManager"/></property> <property name="channelDecisionManager"><ref local="channelDecisionManager"/></property>
<property name="filterInvocationDefinitionSource"> <property name="filterInvocationDefinitionSource">
<value> <value>
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
@ -178,8 +178,8 @@
<bean id="channelDecisionManager" class="net.sf.acegisecurity.securechannel.ChannelDecisionManagerImpl"> <bean id="channelDecisionManager" class="net.sf.acegisecurity.securechannel.ChannelDecisionManagerImpl">
<property name="channelProcessors"> <property name="channelProcessors">
<list> <list>
<ref bean="secureChannelProcessor"/> <ref local="secureChannelProcessor"/>
<ref bean="insecureChannelProcessor"/> <ref local="insecureChannelProcessor"/>
</list> </list>
</property> </property>
</bean> </bean>
@ -190,27 +190,27 @@
<!-- ===================== HTTP REQUEST SECURITY ==================== --> <!-- ===================== HTTP REQUEST SECURITY ==================== -->
<bean id="casProcessingFilter" class="net.sf.acegisecurity.ui.cas.CasProcessingFilter"> <bean id="casProcessingFilter" class="net.sf.acegisecurity.ui.cas.CasProcessingFilter">
<property name="authenticationManager"><ref bean="authenticationManager"/></property> <property name="authenticationManager"><ref local="authenticationManager"/></property>
<property name="authenticationFailureUrl"><value>/casfailed.jsp</value></property> <property name="authenticationFailureUrl"><value>/casfailed.jsp</value></property>
<property name="defaultTargetUrl"><value>/</value></property> <property name="defaultTargetUrl"><value>/</value></property>
<property name="filterProcessesUrl"><value>/j_acegi_cas_security_check</value></property> <property name="filterProcessesUrl"><value>/j_acegi_cas_security_check</value></property>
</bean> </bean>
<bean id="securityEnforcementFilter" class="net.sf.acegisecurity.intercept.web.SecurityEnforcementFilter"> <bean id="securityEnforcementFilter" class="net.sf.acegisecurity.intercept.web.SecurityEnforcementFilter">
<property name="filterSecurityInterceptor"><ref bean="filterInvocationInterceptor"/></property> <property name="filterSecurityInterceptor"><ref local="filterInvocationInterceptor"/></property>
<property name="authenticationEntryPoint"><ref bean="casProcessingFilterEntryPoint"/></property> <property name="authenticationEntryPoint"><ref local="casProcessingFilterEntryPoint"/></property>
</bean> </bean>
<bean id="casProcessingFilterEntryPoint" class="net.sf.acegisecurity.ui.cas.CasProcessingFilterEntryPoint"> <bean id="casProcessingFilterEntryPoint" class="net.sf.acegisecurity.ui.cas.CasProcessingFilterEntryPoint">
<property name="loginUrl"><value>https://localhost:8443/cas/login</value></property> <property name="loginUrl"><value>https://localhost:8443/cas/login</value></property>
<property name="serviceProperties"><ref bean="serviceProperties"/></property> <property name="serviceProperties"><ref local="serviceProperties"/></property>
</bean> </bean>
<bean id="httpRequestAccessDecisionManager" class="net.sf.acegisecurity.vote.AffirmativeBased"> <bean id="httpRequestAccessDecisionManager" class="net.sf.acegisecurity.vote.AffirmativeBased">
<property name="allowIfAllAbstainDecisions"><value>false</value></property> <property name="allowIfAllAbstainDecisions"><value>false</value></property>
<property name="decisionVoters"> <property name="decisionVoters">
<list> <list>
<ref bean="roleVoter"/> <ref local="roleVoter"/>
</list> </list>
</property> </property>
</bean> </bean>
@ -219,9 +219,9 @@
The FilterSecurityInterceptor will work from the top of the list down to the FIRST pattern that matches the request URL. The FilterSecurityInterceptor will work from the top of the list down to the FIRST pattern that matches the request URL.
Accordingly, you should place MOST SPECIFIC (ie a/b/c/d.*) expressions first, with LEAST SPECIFIC (ie a/.*) expressions last --> Accordingly, you should place MOST SPECIFIC (ie a/b/c/d.*) expressions first, with LEAST SPECIFIC (ie a/.*) expressions last -->
<bean id="filterInvocationInterceptor" class="net.sf.acegisecurity.intercept.web.FilterSecurityInterceptor"> <bean id="filterInvocationInterceptor" class="net.sf.acegisecurity.intercept.web.FilterSecurityInterceptor">
<property name="authenticationManager"><ref bean="authenticationManager"/></property> <property name="authenticationManager"><ref local="authenticationManager"/></property>
<property name="accessDecisionManager"><ref bean="httpRequestAccessDecisionManager"/></property> <property name="accessDecisionManager"><ref local="httpRequestAccessDecisionManager"/></property>
<property name="runAsManager"><ref bean="runAsManager"/></property> <property name="runAsManager"><ref local="runAsManager"/></property>
<property name="objectDefinitionSource"> <property name="objectDefinitionSource">
<value> <value>
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON

View File

@ -24,8 +24,8 @@
<bean id="authenticationManager" class="net.sf.acegisecurity.providers.ProviderManager"> <bean id="authenticationManager" class="net.sf.acegisecurity.providers.ProviderManager">
<property name="providers"> <property name="providers">
<list> <list>
<ref bean="runAsAuthenticationProvider"/> <ref local="runAsAuthenticationProvider"/>
<ref bean="daoAuthenticationProvider"/> <ref local="daoAuthenticationProvider"/>
</list> </list>
</property> </property>
</bean> </bean>
@ -49,9 +49,9 @@
<bean id="passwordEncoder" class="net.sf.acegisecurity.providers.encoding.Md5PasswordEncoder"/> <bean id="passwordEncoder" class="net.sf.acegisecurity.providers.encoding.Md5PasswordEncoder"/>
<bean id="daoAuthenticationProvider" class="net.sf.acegisecurity.providers.dao.DaoAuthenticationProvider"> <bean id="daoAuthenticationProvider" class="net.sf.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="authenticationDao"><ref bean="inMemoryDaoImpl"/></property> <property name="authenticationDao"><ref local="inMemoryDaoImpl"/></property>
<property name="userCache"><ref bean="userCache"/></property> <property name="userCache"><ref local="userCache"/></property>
<property name="passwordEncoder"><ref bean="passwordEncoder"/></property> <property name="passwordEncoder"><ref local="passwordEncoder"/></property>
</bean> </bean>
<bean id="userCache" class="net.sf.acegisecurity.providers.dao.cache.EhCacheBasedUserCache"> <bean id="userCache" class="net.sf.acegisecurity.providers.dao.cache.EhCacheBasedUserCache">
@ -62,8 +62,8 @@
<bean id="loggerListener" class="net.sf.acegisecurity.providers.dao.event.LoggerListener"/> <bean id="loggerListener" class="net.sf.acegisecurity.providers.dao.event.LoggerListener"/>
<bean id="basicProcessingFilter" class="net.sf.acegisecurity.ui.basicauth.BasicProcessingFilter"> <bean id="basicProcessingFilter" class="net.sf.acegisecurity.ui.basicauth.BasicProcessingFilter">
<property name="authenticationManager"><ref bean="authenticationManager"/></property> <property name="authenticationManager"><ref local="authenticationManager"/></property>
<property name="authenticationEntryPoint"><ref bean="basicProcessingFilterEntryPoint"/></property> <property name="authenticationEntryPoint"><ref local="basicProcessingFilterEntryPoint"/></property>
</bean> </bean>
<bean id="basicProcessingFilterEntryPoint" class="net.sf.acegisecurity.ui.basicauth.BasicProcessingFilterEntryPoint"> <bean id="basicProcessingFilterEntryPoint" class="net.sf.acegisecurity.ui.basicauth.BasicProcessingFilterEntryPoint">
@ -85,8 +85,8 @@
<property name="allowIfAllAbstainDecisions"><value>false</value></property> <property name="allowIfAllAbstainDecisions"><value>false</value></property>
<property name="decisionVoters"> <property name="decisionVoters">
<list> <list>
<ref bean="roleVoter"/> <ref local="roleVoter"/>
<ref bean="contactSecurityVoter"/> <ref local="contactSecurityVoter"/>
</list> </list>
</property> </property>
</bean> </bean>
@ -94,9 +94,9 @@
<!-- ===================== SECURITY DEFINITIONS ======================= --> <!-- ===================== SECURITY DEFINITIONS ======================= -->
<bean id="publicContactManagerSecurity" class="net.sf.acegisecurity.intercept.method.MethodSecurityInterceptor"> <bean id="publicContactManagerSecurity" class="net.sf.acegisecurity.intercept.method.MethodSecurityInterceptor">
<property name="authenticationManager"><ref bean="authenticationManager"/></property> <property name="authenticationManager"><ref local="authenticationManager"/></property>
<property name="accessDecisionManager"><ref bean="businessAccessDecisionManager"/></property> <property name="accessDecisionManager"><ref local="businessAccessDecisionManager"/></property>
<property name="runAsManager"><ref bean="runAsManager"/></property> <property name="runAsManager"><ref local="runAsManager"/></property>
<property name="objectDefinitionSource"> <property name="objectDefinitionSource">
<value> <value>
sample.contact.ContactManager.delete=ROLE_SUPERVISOR,RUN_AS_SERVER sample.contact.ContactManager.delete=ROLE_SUPERVISOR,RUN_AS_SERVER
@ -109,9 +109,9 @@
<!-- We expect all callers of the backend object to hold the role ROLE_RUN_AS_SERVER --> <!-- We expect all callers of the backend object to hold the role ROLE_RUN_AS_SERVER -->
<bean id="backendContactManagerSecurity" class="net.sf.acegisecurity.intercept.method.MethodSecurityInterceptor"> <bean id="backendContactManagerSecurity" class="net.sf.acegisecurity.intercept.method.MethodSecurityInterceptor">
<property name="authenticationManager"><ref bean="authenticationManager"/></property> <property name="authenticationManager"><ref local="authenticationManager"/></property>
<property name="accessDecisionManager"><ref bean="businessAccessDecisionManager"/></property> <property name="accessDecisionManager"><ref local="businessAccessDecisionManager"/></property>
<property name="runAsManager"><ref bean="runAsManager"/></property> <property name="runAsManager"><ref local="runAsManager"/></property>
<property name="objectDefinitionSource"> <property name="objectDefinitionSource">
<value> <value>
sample.contact.ContactManager.delete=ROLE_RUN_AS_SERVER sample.contact.ContactManager.delete=ROLE_RUN_AS_SERVER
@ -128,22 +128,22 @@
<property name="proxyInterfaces"><value>sample.contact.ContactManager</value></property> <property name="proxyInterfaces"><value>sample.contact.ContactManager</value></property>
<property name="interceptorNames"> <property name="interceptorNames">
<list> <list>
<value>publicContactManagerSecurity</value> <idref local="publicContactManagerSecurity"/>
<value>publicContactManagerTarget</value> <idref local="publicContactManagerTarget"/>
</list> </list>
</property> </property>
</bean> </bean>
<bean id="publicContactManagerTarget" class="sample.contact.ContactManagerFacade"> <bean id="publicContactManagerTarget" class="sample.contact.ContactManagerFacade">
<property name="backend"><ref bean="backendContactManager"/></property> <property name="backend"><ref local="backendContactManager"/></property>
</bean> </bean>
<bean id="backendContactManager" class="org.springframework.aop.framework.ProxyFactoryBean"> <bean id="backendContactManager" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces"><value>sample.contact.ContactManager</value></property> <property name="proxyInterfaces"><value>sample.contact.ContactManager</value></property>
<property name="interceptorNames"> <property name="interceptorNames">
<list> <list>
<value>backendContactManagerSecurity</value> <idref local="backendContactManagerSecurity"/>
<value>backendContactManagerTarget</value> <idref local="backendContactManagerTarget"/>
</list> </list>
</property> </property>
</bean> </bean>
@ -156,7 +156,7 @@
<filter-mapping> in web.xml for the following beans to be used --> <filter-mapping> in web.xml for the following beans to be used -->
<bean id="channelProcessingFilter" class="net.sf.acegisecurity.securechannel.ChannelProcessingFilter"> <bean id="channelProcessingFilter" class="net.sf.acegisecurity.securechannel.ChannelProcessingFilter">
<property name="channelDecisionManager"><ref bean="channelDecisionManager"/></property> <property name="channelDecisionManager"><ref local="channelDecisionManager"/></property>
<property name="filterInvocationDefinitionSource"> <property name="filterInvocationDefinitionSource">
<value> <value>
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
@ -171,8 +171,8 @@
<bean id="channelDecisionManager" class="net.sf.acegisecurity.securechannel.ChannelDecisionManagerImpl"> <bean id="channelDecisionManager" class="net.sf.acegisecurity.securechannel.ChannelDecisionManagerImpl">
<property name="channelProcessors"> <property name="channelProcessors">
<list> <list>
<ref bean="secureChannelProcessor"/> <ref local="secureChannelProcessor"/>
<ref bean="insecureChannelProcessor"/> <ref local="insecureChannelProcessor"/>
</list> </list>
</property> </property>
</bean> </bean>
@ -183,15 +183,15 @@
<!-- ===================== HTTP REQUEST SECURITY ==================== --> <!-- ===================== HTTP REQUEST SECURITY ==================== -->
<bean id="authenticationProcessingFilter" class="net.sf.acegisecurity.ui.webapp.AuthenticationProcessingFilter"> <bean id="authenticationProcessingFilter" class="net.sf.acegisecurity.ui.webapp.AuthenticationProcessingFilter">
<property name="authenticationManager"><ref bean="authenticationManager"/></property> <property name="authenticationManager"><ref local="authenticationManager"/></property>
<property name="authenticationFailureUrl"><value>/acegilogin.jsp?login_error=1</value></property> <property name="authenticationFailureUrl"><value>/acegilogin.jsp?login_error=1</value></property>
<property name="defaultTargetUrl"><value>/</value></property> <property name="defaultTargetUrl"><value>/</value></property>
<property name="filterProcessesUrl"><value>/j_acegi_security_check</value></property> <property name="filterProcessesUrl"><value>/j_acegi_security_check</value></property>
</bean> </bean>
<bean id="securityEnforcementFilter" class="net.sf.acegisecurity.intercept.web.SecurityEnforcementFilter"> <bean id="securityEnforcementFilter" class="net.sf.acegisecurity.intercept.web.SecurityEnforcementFilter">
<property name="filterSecurityInterceptor"><ref bean="filterInvocationInterceptor"/></property> <property name="filterSecurityInterceptor"><ref local="filterInvocationInterceptor"/></property>
<property name="authenticationEntryPoint"><ref bean="authenticationProcessingFilterEntryPoint"/></property> <property name="authenticationEntryPoint"><ref local="authenticationProcessingFilterEntryPoint"/></property>
</bean> </bean>
<bean id="authenticationProcessingFilterEntryPoint" class="net.sf.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint"> <bean id="authenticationProcessingFilterEntryPoint" class="net.sf.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint">
@ -203,7 +203,7 @@
<property name="allowIfAllAbstainDecisions"><value>false</value></property> <property name="allowIfAllAbstainDecisions"><value>false</value></property>
<property name="decisionVoters"> <property name="decisionVoters">
<list> <list>
<ref bean="roleVoter"/> <ref local="roleVoter"/>
</list> </list>
</property> </property>
</bean> </bean>
@ -212,9 +212,9 @@
The FilterSecurityInterceptor will work from the top of the list down to the FIRST pattern that matches the request URL. The FilterSecurityInterceptor will work from the top of the list down to the FIRST pattern that matches the request URL.
Accordingly, you should place MOST SPECIFIC (ie a/b/c/d.*) expressions first, with LEAST SPECIFIC (ie a/.*) expressions last --> Accordingly, you should place MOST SPECIFIC (ie a/b/c/d.*) expressions first, with LEAST SPECIFIC (ie a/.*) expressions last -->
<bean id="filterInvocationInterceptor" class="net.sf.acegisecurity.intercept.web.FilterSecurityInterceptor"> <bean id="filterInvocationInterceptor" class="net.sf.acegisecurity.intercept.web.FilterSecurityInterceptor">
<property name="authenticationManager"><ref bean="authenticationManager"/></property> <property name="authenticationManager"><ref local="authenticationManager"/></property>
<property name="accessDecisionManager"><ref bean="httpRequestAccessDecisionManager"/></property> <property name="accessDecisionManager"><ref local="httpRequestAccessDecisionManager"/></property>
<property name="runAsManager"><ref bean="runAsManager"/></property> <property name="runAsManager"><ref local="runAsManager"/></property>
<property name="objectDefinitionSource"> <property name="objectDefinitionSource">
<value> <value>
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON

View File

@ -30,8 +30,8 @@
The FilterSecurityInterceptor will work from the top of the list down to the FIRST pattern that matches the request URL. The FilterSecurityInterceptor will work from the top of the list down to the FIRST pattern that matches the request URL.
Accordingly, you should place MOST SPECIFIC (ie a/b/c/d.*) expressions first, with LEAST SPECIFIC (ie a/.*) expressions last --> Accordingly, you should place MOST SPECIFIC (ie a/b/c/d.*) expressions first, with LEAST SPECIFIC (ie a/.*) expressions last -->
<bean id="filterInvocationInterceptor" class="net.sf.acegisecurity.intercept.web.FilterSecurityInterceptor"> <bean id="filterInvocationInterceptor" class="net.sf.acegisecurity.intercept.web.FilterSecurityInterceptor">
<property name="authenticationManager"><ref bean="authenticationManager"/></property> <property name="authenticationManager"><ref local="authenticationManager"/></property>
<property name="accessDecisionManager"><ref bean="accessDecisionManager"/></property> <property name="accessDecisionManager"><ref local="accessDecisionManager"/></property>
<property name="objectDefinitionSource"> <property name="objectDefinitionSource">
<value> <value>
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
@ -44,8 +44,8 @@
<!-- =================== SECURITY BEANS YOU WILL RARELY (IF EVER) CHANGE ================== --> <!-- =================== SECURITY BEANS YOU WILL RARELY (IF EVER) CHANGE ================== -->
<bean id="daoAuthenticationProvider" class="net.sf.acegisecurity.providers.dao.DaoAuthenticationProvider"> <bean id="daoAuthenticationProvider" class="net.sf.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="authenticationDao"><ref bean="authenticationDao"/></property> <property name="authenticationDao"><ref local="authenticationDao"/></property>
<property name="userCache"><ref bean="userCache"/></property> <property name="userCache"><ref local="userCache"/></property>
</bean> </bean>
<bean id="userCache" class="net.sf.acegisecurity.providers.dao.cache.EhCacheBasedUserCache"> <bean id="userCache" class="net.sf.acegisecurity.providers.dao.cache.EhCacheBasedUserCache">
@ -55,7 +55,7 @@
<bean id="authenticationManager" class="net.sf.acegisecurity.providers.ProviderManager"> <bean id="authenticationManager" class="net.sf.acegisecurity.providers.ProviderManager">
<property name="providers"> <property name="providers">
<list> <list>
<ref bean="daoAuthenticationProvider"/> <ref local="daoAuthenticationProvider"/>
</list> </list>
</property> </property>
</bean> </bean>
@ -66,21 +66,21 @@
<property name="allowIfAllAbstainDecisions"><value>false</value></property> <property name="allowIfAllAbstainDecisions"><value>false</value></property>
<property name="decisionVoters"> <property name="decisionVoters">
<list> <list>
<ref bean="roleVoter"/> <ref local="roleVoter"/>
</list> </list>
</property> </property>
</bean> </bean>
<bean id="authenticationProcessingFilter" class="net.sf.acegisecurity.ui.webapp.AuthenticationProcessingFilter"> <bean id="authenticationProcessingFilter" class="net.sf.acegisecurity.ui.webapp.AuthenticationProcessingFilter">
<property name="authenticationManager"><ref bean="authenticationManager"/></property> <property name="authenticationManager"><ref local="authenticationManager"/></property>
<property name="authenticationFailureUrl"><value>/acegilogin.jsp?login_error=1</value></property> <property name="authenticationFailureUrl"><value>/acegilogin.jsp?login_error=1</value></property>
<property name="defaultTargetUrl"><value>/</value></property> <property name="defaultTargetUrl"><value>/</value></property>
<property name="filterProcessesUrl"><value>/j_acegi_security_check</value></property> <property name="filterProcessesUrl"><value>/j_acegi_security_check</value></property>
</bean> </bean>
<bean id="securityEnforcementFilter" class="net.sf.acegisecurity.intercept.web.SecurityEnforcementFilter"> <bean id="securityEnforcementFilter" class="net.sf.acegisecurity.intercept.web.SecurityEnforcementFilter">
<property name="filterSecurityInterceptor"><ref bean="filterInvocationInterceptor"/></property> <property name="filterSecurityInterceptor"><ref local="filterInvocationInterceptor"/></property>
<property name="authenticationEntryPoint"><ref bean="authenticationProcessingFilterEntryPoint"/></property> <property name="authenticationEntryPoint"><ref local="authenticationProcessingFilterEntryPoint"/></property>
</bean> </bean>
<bean id="authenticationProcessingFilterEntryPoint" class="net.sf.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint"> <bean id="authenticationProcessingFilterEntryPoint" class="net.sf.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint">