My app works fine using 3.0.3, but there are some features in 3.1 (SEC-1171) that I would like to take advantage of. The first thing I did was to upgrade my libs to 3.1, and when I did I got the following error:
Here are my config details.Code:2010-08-16 15:04:40,377 [main] INFO method.GlobalMethodSecurityBeanDefinitionParser - Expressions were enabled for method security but no SecurityExpressionHandler was configured. All hasPermision() expressions will evaluate to false. 2010-08-16 15:04:46,791 [main] ERROR [localhost].[/idea500] - Exception starting filter springSecurityFilterChain org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSecurityFilterChain' is defined at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:521) at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1068) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:274) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:266) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1079) at org.springframework.web.filter.DelegatingFilterProxy.initDelegate(DelegatingFilterProxy.java:217) at org.springframework.web.filter.DelegatingFilterProxy.initFilterBean(DelegatingFilterProxy.java:145) at org.springframework.web.filter.GenericFilterBean.init(GenericFilterBean.java:179) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275) at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3827) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4477) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.java:722) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:515) at org.apache.catalina.core.StandardServer.start(StandardServer.java:708) at org.apache.catalina.startup.Tomcat.start(Tomcat.java:286) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:121)
web.xml:
resource.xmlCode:<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>
My guess is that something about my security:http sections is in conflict with some change in 3.1, hence it is not creating a springSecurityFilterChain bean for me.Code:<beans xmlns="http://www.springframework.org/schema/beans" xmlns:security="http://www.springframework.org/schema/security" 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-3.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd"> <security:global-method-security pre-post-annotations="enabled" /> <security:http auto-config="false" use-expressions="true"> <security:intercept-url pattern="/login*" filters="none"/> <security:intercept-url pattern="/logout*" filters="none"/> <security:intercept-url pattern="/css/**" filters="none"/> <security:intercept-url pattern="/js/**" filters="none"/> <security:intercept-url pattern="/images/**" filters="none"/> <security:intercept-url pattern="/**" access="isAuthenticated()" /> <security:access-denied-handler error-page="/xxx/accessdenied"/> <security:form-login login-page="/login" authentication-failure-url="/login?error=1" default-target-url="/xxx/xxx/index"/> <security:logout logout-success-url="/logout"/> </security:http> <security:ldap-server url="ldap://xxx:389" root="DC=xxx,DC=xxx" manager-dn="CN=xxx,OU=xxx,OU=xxx,DC=xxx,DC=xxx" manager-password="xxx"/> <security:authentication-manager> <security:authentication-provider> <security:jdbc-user-service data-source-ref="dataSource"/> </security:authentication-provider> <security:ldap-authentication-provider user-search-filter="(sAMAccountName={0})" user-search-base="DC=xxx,DC=xxx" group-role-attribute="CN" group-search-filter="(&(objectClass=group)(member={0}))" group-search-base="OU=xxx,OU=xxx,DC=xxx,DC=xxx" /> </security:authentication-manager> <bean class="org.springframework.security.authentication.encoding.ShaPasswordEncoder" id="passwordEncoder"/> <bean id="loggerListener" class="org.springframework.security.authentication.event.LoggerListener"/> </beans>
In case you had not already guessed I'm using Grails 1.3.3


. It's good to see people like yourself trying out 3.1 already - the more the merrier. Hopefully I'll be able to release milestone 1 this week, which should encourage others to give it a try.

