<?xml version="1.0" encoding="UTF-8"?>

<!--
  |
  |  Miscellaneous beans added just to test configuration options
  |
  -->

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:sec="http://www.springframework.org/schema/security"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:util="http://www.springframework.org/schema/util"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
						http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.xsd
						http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd">

	<bean id="accessDecisionManager" class="org.springframework.security.vote.AffirmativeBased">
		<property name="decisionVoters">
			<list>
				<bean class="org.springframework.security.vote.RoleVoter"/>
				<bean class="org.springframework.security.vote.AuthenticatedVoter"/>
			</list>
		</property>
	</bean>


	<bean id="filterInvocationInterceptor" class="org.springframework.security.intercept.web.FilterSecurityInterceptor">
		<property name="authenticationManager" ref="authenticationManager"/>
		<property name="accessDecisionManager" ref="accessDecisionManager"/>
		<property name="objectDefinitionSource">
			<value><![CDATA[
				CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
				PATTERN_TYPE_APACHE_ANT
				/secure/extreme/**=ROLE_SUPERVISOR
				/secure/**=IS_AUTHENTICATED_REMEMBERED
				/**=IS_AUTHENTICATED_ANONYMOUSLY
			]]></value>
		</property>
	</bean>

	<bean id="basicProcessingFilter" class="org.springframework.security.ui.basicauth.BasicProcessingFilter">
		<property name="authenticationManager" ref="authenticationManager"/>
		<property name="authenticationEntryPoint" ref="basicProcessingFilterEntryPoint"/>
	</bean>

	<bean id="basicProcessingFilterEntryPoint" class="org.springframework.security.ui.basicauth.BasicProcessingFilterEntryPoint">
		<property name="realmName"><value>My Realm</value></property>
	</bean>

	<bean id="bankServiceSecurityInterceptor"
		class="org.springframework.security.intercept.method.aopalliance.MethodSecurityInterceptor">
	  <property name="authenticationManager" ref="authenticationManager"/>
	  <property name="accessDecisionManager" ref="accessDecisionManager"/>
	  <!-- property name="afterInvocationManager" ref="afterInvocationManager"/ -->
	  <property name="objectDefinitionSource">
		<value>
			bigbank.BankService.post*=ROLE_SUPERVISOR
			bigbank.BankService.find*=ROLE_SUPERVISOR
		</value>
	  </property>
	</bean>

</beans>


