No bean named 'springSecurityFilterChain' is defined
Bonjour à tous,
Je suis en train d'essayer de configurer Spring Security pour qu'il communique avec un serveur Active Directory. Après avoir erré dans les dédales de la configuration de Spring Security (je débute, c'est la première fois que je touche à du spring), ça m'affiche l'erreur suivante :
No bean named 'springSecurityFilterChain' is defined
J'utilise :
Spring et Spring Security 3.0.2.RELEASE
Spring-LDAP 1.3.1.RELEASE
Maven 2.2.1
J'ai rien trouvé sur google, j'ai essayé de déclarer un bean correspondant dans le springConfiguration.xml mais ça n'a rien fait. Je suis en train de me retaper la doc de Spring Security pour voir si j'ai pas loupé un truc, en attendant voici les fichiers de conf :
web.xml :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- SpringDM / Spring security application contexts -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:springConfiguration.xml
<!-- classpath:springSecuritySettings.xml -->
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app> |
springConfiguration.xml :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| <?xml version="1.0" encoding="UTF-8"?>
<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:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:util="http://www.springframework.org/schema/util" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-2.0.1.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<!-- FOR EASIER INJECTION (Not Working) -->
<tx:annotation-driven/>
<context:component-scan base-package="beans"/>
<!-- DEFAULT VALUES FOR SYSTEM PROPERTIES -->
<bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="properties">
<props>
<prop key="application.default.property.key">propertyDefalutValue</prop>
</props>
</property>
<property name="systemPropertiesModeName">
<value>SYSTEM_PROPERTIES_MODE_OVERRIDE</value>
</property>
<property name="ignoreResourceNotFound" value="true"/>
<property name="locations">
<list>
<value>classpath:config.properties</value>
<!-- value>file:${user.home}/application.properties</value-->
</list>
</property>
</bean>
<!-- CONNECTION TO ACTIVE DIRECTORY -->
<bean id="contextSource" class="org.springframework.security.ldap.DefaultSpringSecurityContextSource">
<constructor-arg index="0" value="ldap://xxx.net:389/cn=Users,dc=xxx,dc=net" />
<property name="userDn" value="xxx\xxx" />
<property name="password" value="xxxyyy" />
</bean>
<!-- OBJECT MAKINGS SEARCHES INTO ACTIVE DIRECTORY -->
<bean id="ldapUserSearch" class="org.springframework.security.ldap.search.FilterBasedLdapUserSearch">
<constructor-arg index="0" value="ou=users" />
<constructor-arg index="1" value="(sAMAccountName={0})" /> <!-- Critère de recherche LDAP, ici le login de l'utilisateur correspond à l'uid de l'entrée LDAP -->
<constructor-arg index="2" ref="contextSource" />
<property name="searchSubtree" value="true" />
</bean>
<!-- MANAGING RIGHTS -->
<bean id="testLdapAuthoritiesPopulator" class="com.XXX.test.TestLdapAuthoritiesPopulator"/>
<!-- LDAP PROVIDER -->
<bean id="ldapAuthProvider" class="org.springframework.security.ldap.authentication.LdapAuthenticationProvider">
<constructor-arg index="0">
<bean class="org.springframework.security.ldap.authentication.BindAuthenticator">
<constructor-arg index="0" ref="contextSource" />
<property name="userSearch" ref="ldapUserSearch" />
</bean>
</constructor-arg>
<constructor-arg index="1">
<!-- <bean ref="testLdapAuthoritiesPopulator" /> -->
<bean class="org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator">
<constructor-arg ref="contextSource"/>
<constructor-arg value="ou=users"/>
<property name="groupRoleAttribute" value="ou"/>
</bean>
</constructor-arg>
</bean>
<!--<bean id="springSecurityFilterChain" class="org.springframework.web.filter.Spring ">
</bean>
-->
</beans> |
springSecuritySettings.xml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="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.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-2.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<global-method-security pre-post-annotations="enabled">
<!-- AspectJ pointcut expression that locates our "post" method and applies security that way
<protect-pointcut expression="execution(* bigbank.*Service.post*(..))" access="ROLE_TELLER"/>
-->
</global-method-security>
<http use-expressions="true">
<intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
<form-login />
<http-basic />
<logout />
</http>
<security:authentication-manager>
<security:authentication-provider ref="ldapAuthProvider"/>
</security:authentication-manager>
</beans:beans> |
Merci d'avance.