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

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
       
    <!-- license controller, used in jasperserver-servlet.xml -->
    <bean id="licContr" class="com.jaspersoft.ji.license.LicenseController">
        <property name="methodNameResolver" ref="licParamResolver"/>
        <property name="repository">
            <ref bean="repositoryService"/>
        </property>
        <property name="userAuthService">
            <ref bean="userAuthorityService"/>
        </property>
        <property name="objPermService">
            <ref bean="objectPermissionService"/>
        </property>
    </bean>

    <bean id="licHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
      <property name="mappings">
	<props>
          <prop key="/licensefailed.html">licContr</prop>
	</props>
      </property>
    </bean>

    <!-- used by above -->
    <bean id="licParamResolver" class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver">
      <property name="mappings">
        <props>
          <prop key="/licensefailed.html">licenseFailed</prop>
        </props>
      </property>
    </bean>
  
    <!-- allow any roles for license failed page -->
    <bean class="com.jaspersoft.jasperserver.api.common.util.spring.GenericBeanUpdater">
        <property name="definition" ref="setRolesForURL"/>
        <property name="value">
            <value>
            /licensefailed.html=ROLE_ADMINISTRATOR,ROLE_USER,ROLE_ANONYMOUS
            </value>
        </property>
    </bean>
    
    <!-- license filter, used in appCon-security.xml (acegi filter chain) -->
    <bean id="JILicenseFilter" class="com.jaspersoft.ji.license.JILicenseFilter">
        <property name="licenseFailedUrl">
            <value>/licensefailed.html</value>
        </property>
    </bean>
    
    <!-- set up license filter -->
    <bean class="com.jaspersoft.jasperserver.api.common.util.spring.GenericBeanUpdater">
        <property name="definition" ref="insertFilter"/>
        <property name="value" value="JILicenseFilter,"/>
        <property name="before" value="exceptionTranslationFilter"/>
    </bean>

    <bean id="licenseBean" class="com.jaspersoft.ji.license.LicenseBean">
        <property name="messageSource" ref="messageSource"/>
    </bean>
    
    <!-- add message catalog -->
    <bean class="com.jaspersoft.jasperserver.api.common.util.spring.GenericBeanUpdater">
        <property name="definition" ref="addMessageCatalog"/>
        <property name="value" value="WEB-INF/bundles/LicenseMessages"/>
    </bean>
</beans>

