1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
3
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
|
4
|
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
|
5
|
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
6
|
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
|
7
|
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
|
8
|
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
|
9
|
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
|
10
|
">
|
11
|
|
12
|
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
|
13
|
<property name="sessionFactory" ref="sessionFactory" />
|
14
|
</bean>
|
15
|
|
16
|
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" depends-on="tableGeneratorGlobalOverride">
|
17
|
<property name="namingStrategy">
|
18
|
<bean class="org.hibernate.cfg.DefaultComponentSafeNamingStrategy" />
|
19
|
</property>
|
20
|
|
21
|
<property name="entityInterceptor" ref="securityHibernateInterceptor" />
|
22
|
|
23
|
<property name="configLocation" value="classpath:eu/etaxonomy/cdm/hibernate.cfg.xml"/>
|
24
|
|
25
|
<!-- Looks like this is not needed anymore for hibernate 4 -->
|
26
|
<!-- <property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration"/> -->
|
27
|
|
28
|
<!--
|
29
|
If dataSource is set, this will override corresponding settings in Hibernate properties.
|
30
|
If this is set, the Hibernate settings should not define a connection provider to
|
31
|
avoid meaningless double configuration.
|
32
|
|
33
|
see also org.springframework.orm.hibernate3.AbstractSessionFactoryBean.setDataSource(DataSource dataSource)
|
34
|
-->
|
35
|
<property name="dataSource" ref="dataSource"/>
|
36
|
<property name="hibernateProperties" ref="hibernateProperties"/>
|
37
|
</bean>
|
38
|
|
39
|
<!--
|
40
|
Configuration for the BeanInitialization
|
41
|
-->
|
42
|
<bean id="titleCacheAutoInitializer" class="eu.etaxonomy.cdm.persistence.dao.initializer.TitleCacheAutoInitializer"></bean>
|
43
|
<bean id="annotationTypeAutoInitializer" class="eu.etaxonomy.cdm.persistence.dao.initializer.AnnotationTypeAutoInitializer"></bean>
|
44
|
<bean id="markerTypeAutoInitializer" class="eu.etaxonomy.cdm.persistence.dao.initializer.MarkerTypeAutoInitializer"></bean>
|
45
|
<bean id="gatheringEventLocationAutoInitializer" class="eu.etaxonomy.cdm.persistence.dao.initializer.GatheringEventLocationAutoInitializer"></bean>
|
46
|
<bean id="termBaseAutoInitializer" class="eu.etaxonomy.cdm.persistence.dao.initializer.TermBaseAutoInitializer"></bean>
|
47
|
<bean id="mediaAutoInitializer" class="eu.etaxonomy.cdm.persistence.dao.initializer.MediaAutoInitializer"></bean>
|
48
|
<bean id="typeDesignationAutoInitializer" class="eu.etaxonomy.cdm.persistence.dao.initializer.TypeDesignationAutoInitializer"></bean>
|
49
|
|
50
|
<bean id="defaultBeanInitializer" class="eu.etaxonomy.cdm.persistence.dao.hibernate.HibernateBeanInitializer">
|
51
|
<property name="beanAutoInitializers">
|
52
|
<map>
|
53
|
<entry key="eu.etaxonomy.cdm.model.common.IdentifiableEntity" value-ref="titleCacheAutoInitializer" />
|
54
|
<entry key="eu.etaxonomy.cdm.model.common.Annotation" value-ref="annotationTypeAutoInitializer" />
|
55
|
<entry key="eu.etaxonomy.cdm.model.common.Marker" value-ref="markerTypeAutoInitializer" />
|
56
|
<entry key="eu.etaxonomy.cdm.model.occurrence.GatheringEvent" value-ref="gatheringEventLocationAutoInitializer" />
|
57
|
<entry key="eu.etaxonomy.cdm.model.common.TermBase" value-ref="termBaseAutoInitializer" />
|
58
|
<entry key="eu.etaxonomy.cdm.model.media.Media" value-ref="mediaAutoInitializer" />
|
59
|
<entry key="eu.etaxonomy.cdm.model.name.TypeDesignationBase" value-ref="typeDesignationAutoInitializer" />
|
60
|
</map>
|
61
|
</property>
|
62
|
</bean>
|
63
|
|
64
|
<!--
|
65
|
============================== SECURITY ==============================
|
66
|
-->
|
67
|
<bean id="accessDecisionManager" class="org.springframework.security.access.vote.UnanimousBased">
|
68
|
<property name="decisionVoters">
|
69
|
<list>
|
70
|
<bean class="eu.etaxonomy.cdm.persistence.hibernate.permission.voter.GrantAlwaysVoter" />
|
71
|
<bean class="eu.etaxonomy.cdm.persistence.hibernate.permission.voter.TaxonNodeVoter" />
|
72
|
<bean class="eu.etaxonomy.cdm.persistence.hibernate.permission.voter.TaxonBaseVoter" />
|
73
|
<bean class="eu.etaxonomy.cdm.persistence.hibernate.permission.voter.DescriptionBaseVoter" />
|
74
|
<bean class="eu.etaxonomy.cdm.persistence.hibernate.permission.voter.DescriptionElementVoter" />
|
75
|
</list>
|
76
|
</property>
|
77
|
</bean>
|
78
|
|
79
|
<!--
|
80
|
CdmPermissionEvaluator.hasPermissions() evaluates the CdmPermissions like TAXONNODE.UPDATE{20c8f083-5870-4cbd-bf56-c5b2b98ab6a7}
|
81
|
-->
|
82
|
<bean id="cdmPermissionEvaluator" class="eu.etaxonomy.cdm.persistence.hibernate.permission.CdmPermissionEvaluator">
|
83
|
<property name="accessDecisionManager" ref="accessDecisionManager" />
|
84
|
</bean>
|
85
|
|
86
|
<!-- The CdmSecurityHibernateInterceptor checks onSave() and on flushDirty() if the currently authenticated principal or token has
|
87
|
sufficient permissions on the entity to be persisted -->
|
88
|
<bean id="securityHibernateInterceptor" class="eu.etaxonomy.cdm.persistence.hibernate.CdmSecurityHibernateInterceptor">
|
89
|
<property name="permissionEvaluator" ref="cdmPermissionEvaluator" />
|
90
|
</bean>
|
91
|
|
92
|
</beans>
|