Integração Struts 2 + Spring + SpringSecurity

Estou tentando fazer a integracao do Struts 2 com SpringSecurity mas ainda nao saquei como integrar o SpringSecurity no controle de login com Struts 2

segue o web.xml

[code]<?xml version=“1.0” encoding=“UTF-8”?>
<web-app version=“2.5” xmlns=“http://java.sun.com/xml/ns/javaee
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation=“http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd”>
<!-- SPRING -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext*.xml</param-value>
</context-param>

&lt;listener&gt;
    &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt;
&lt;/listener&gt;

&lt;!-- FILTROS --&gt;
&lt;filter&gt;
    &lt;filter-name&gt;springSecurityFilterChain&lt;/filter-name&gt;
    &lt;filter-class&gt;org.springframework.web.filter.DelegatingFilterProxy&lt;/filter-class&gt;
&lt;/filter&gt;
&lt;filter-mapping&gt;
    &lt;filter-name&gt;springSecurityFilterChain&lt;/filter-name&gt;
    &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
&lt;/filter-mapping&gt;

&lt;filter&gt;
    &lt;filter-name&gt;requestContextFilter&lt;/filter-name&gt;
    &lt;filter-class&gt;org.springframework.web.filter.RequestContextFilter&lt;/filter-class&gt;
&lt;/filter&gt;

&lt;filter&gt;
    &lt;filter-name&gt;character-encoding&lt;/filter-name&gt;
    &lt;filter-class&gt;br.com.intesis.producaonfe.CharacterEncodingFilter&lt;/filter-class&gt;
&lt;/filter&gt;
&lt;filter&gt;
    &lt;filter-name&gt;struts-prepare&lt;/filter-name&gt;
    &lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter&lt;/filter-class&gt;
&lt;/filter&gt;
&lt;filter&gt;
    &lt;filter-name&gt;struts-execute&lt;/filter-name&gt;
    &lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter&lt;/filter-class&gt;
&lt;/filter&gt;

&lt;filter-mapping&gt;
    &lt;filter-name&gt;requestContextFilter&lt;/filter-name&gt;
    &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
&lt;/filter-mapping&gt;
&lt;filter&gt;
    &lt;filter-name&gt;sitemesh&lt;/filter-name&gt;
    &lt;filter-class&gt;com.opensymphony.module.sitemesh.filter.PageFilter&lt;/filter-class&gt;
&lt;/filter&gt;
&lt;filter-mapping&gt;
    &lt;filter-name&gt;character-encoding&lt;/filter-name&gt;
    &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
&lt;/filter-mapping&gt;
&lt;filter-mapping&gt;
    &lt;filter-name&gt;struts-prepare&lt;/filter-name&gt;
    &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
&lt;/filter-mapping&gt;
&lt;filter-mapping&gt;
    &lt;filter-name&gt;sitemesh&lt;/filter-name&gt;
    &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
&lt;/filter-mapping&gt;
&lt;filter-mapping&gt;
    &lt;filter-name&gt;struts-execute&lt;/filter-name&gt;
    &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
&lt;/filter-mapping&gt;


&lt;!-- Welcome file lists --&gt;
&lt;welcome-file-list&gt;
    &lt;welcome-file&gt;index.html&lt;/welcome-file&gt;
&lt;/welcome-file-list&gt;

</web-app>[/code]

e aqui o applicationContext

[code]<?xml version=“1.0” encoding=“ISO-8859-1”?>
<b:beans xmlns=“http://www.springframework.org/schema/security
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance
xmlns:b=“http://www.springframework.org/schema/beans
xsi:schemaLocation=“http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.0.xsd”>

&lt;!-- SPRING SECURITY --&gt;   
&lt;http auto-config="true" access-denied-page="/acessonegado.jsp" use-expressions="true"&gt;
    &lt;intercept-url pattern="/admin/**" access="hasAnyRole('ROLE_MANAGER','ROLE_ADMIN')" /&gt;
    &lt;intercept-url pattern="/pages/**" access="hasAnyRole('ROLE_MANAGER','ROLE_ADMIN','ROLE_USER')"/&gt;
    &lt;intercept-url pattern="/home.jsp" access="permitAll"/&gt;
    &lt;form-login login-page="/login.jsp" authentication-failure-url="/login.jsp?error=invalido"/&gt;
    &lt;openid-login authentication-success-handler-ref="openIdAuthenticationHandler"&gt;
        &lt;attribute-exchange&gt;
            &lt;openid-attribute name="email" type="http://schema.openid.net/contact/email"/&gt;
        &lt;/attribute-exchange&gt;
    &lt;/openid-login&gt;
&lt;/http&gt;

&lt;authentication-manager&gt;
    &lt;authentication-provider&gt;
        &lt;jdbc-user-service data-source-ref="dataSource"
           users-by-username-query="SELECT login, senha, ativo FROM usuario WHERE login=?"
           authorities-by-username-query="SELECT login, tipo FROM usuario WHERE login=?"
        /&gt;
    &lt;/authentication-provider&gt;
&lt;/authentication-manager&gt;

&lt;b:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" &gt;
    &lt;b:property name="url" value="jdbc:mysql://192.168.0.45:3306/mensagerianfe" /&gt;
    &lt;b:property name="driverClassName" value="com.mysql.jdbc.Driver" /&gt;
    &lt;b:property name="username" value="root" /&gt;
    &lt;b:property name="password" value="senha" /&gt;
&lt;/b:bean&gt;

&lt;b:bean id="openIdAuthenticationHandler" class="MeuAuthenticationSuccessHandler"/&gt;


&lt;!-- BEANS --&gt;

&lt;bean id="usuarioRepository" class="br.com.intesis.producaonfe.infrastructure.UsuarioDecorator"&gt;
    &lt;property name="dao"&gt;
        &lt;bean name="GenericJPADAO" class="br.com.intesis.producaonfe.infrastructure.dao.GenericJPADAO"&gt;
            &lt;constructor-arg value="br.com.intesis.producaonfe.domain.Usuario" /&gt;
        &lt;/bean&gt;
    &lt;/property&gt;
&lt;/bean&gt;

</beans>[/code]

e aqui o struts.xml

[code]<?xml version=“1.0” encoding=“UTF-8” ?>
<!DOCTYPE struts PUBLIC
“-//Apache Software Foundation//DTD Struts Configuration 2.0//EN”
http://struts.apache.org/dtds/struts-2.0.dtd”>

<struts>

&lt;constant name="struts.enable.DynamicMethodInvocation" value="false" /&gt;
&lt;constant name="struts.devMode" value="true" /&gt;

&lt;package name="default" namespace="/" extends="struts-default"&gt;
    &lt;interceptors&gt;
        &lt;interceptor name="verificarInstalacao"
    class="br.com.intesis.producaonfe.controller.VerificarInstalacaoInterceptor" /&gt;
        &lt;interceptor-stack name="mensageriaNFeInstalacaoStack"&gt;
            &lt;interceptor-ref name="exception" /&gt;
            &lt;interceptor-ref name="alias" /&gt;
            &lt;interceptor-ref name="servletConfig" /&gt;
            &lt;interceptor-ref name="i18n" /&gt;
            &lt;interceptor-ref name="prepare" /&gt;
            &lt;interceptor-ref name="chain" /&gt;
            &lt;interceptor-ref name="debugging" /&gt;
            &lt;interceptor-ref name="profiling" /&gt;
            &lt;interceptor-ref name="scopedModelDriven" /&gt;
            &lt;interceptor-ref name="modelDriven" /&gt;
            &lt;interceptor-ref name="fileUpload" /&gt;
            &lt;interceptor-ref name="checkbox" /&gt;
            &lt;interceptor-ref name="staticParams" /&gt;
            &lt;interceptor-ref name="actionMappingParams" /&gt;
            &lt;interceptor-ref name="params"&gt;
                &lt;param name="excludeParams"&gt;dojo\..*,^struts\..*&lt;/param&gt;
            &lt;/interceptor-ref&gt;
            &lt;interceptor-ref name="conversionError" /&gt;
            &lt;interceptor-ref name="validation"&gt;
                &lt;param name="excludeMethods"&gt;input,back,cancel,browse&lt;/param&gt;
            &lt;/interceptor-ref&gt;
            &lt;interceptor-ref name="jsonValidation" /&gt;
            &lt;interceptor-ref name="workflow"&gt;
                &lt;param name="excludeMethods"&gt;input,back,cancel,browse&lt;/param&gt;
            &lt;/interceptor-ref&gt;
        &lt;/interceptor-stack&gt;
        &lt;interceptor-stack name="mensageriaNFeStack"&gt;
            &lt;interceptor-ref name="verificarInstalacao" /&gt;
            &lt;interceptor-ref name="mensageriaNFeInstalacaoStack" /&gt;
        &lt;/interceptor-stack&gt;
    &lt;/interceptors&gt;
    &lt;default-interceptor-ref name="mensageriaNFeStack" /&gt;
    &lt;default-action-ref name="home" /&gt;
    &lt;global-results&gt;
        &lt;result name="instalar" type="chain"&gt;
            &lt;param name="actionName"&gt;instalar!input&lt;/param&gt;
            &lt;param name="namespace"&gt;/instalarSistema&lt;/param&gt;
        &lt;/result&gt;
        &lt;result name="acesso_negado"&gt;/acessonegado.jsp&lt;/result&gt;
    &lt;/global-results&gt;
    &lt;action name="home" class="br.com.intesis.producaonfe.controller.HomeAction"&gt;
        &lt;result&gt;/home.jsp&lt;/result&gt;
    &lt;/action&gt;
    &lt;action name="login" class="br.com.intesis.producaonfe.controller.LoginAction"&gt;
        &lt;result name="input"&gt;/home.jsp&lt;/result&gt;
        &lt;result&gt;/home.jsp&lt;/result&gt;
    &lt;/action&gt;
    &lt;action name="logout" class="br.com.intesis.producaonfe.controller.LoginAction" method="logout"&gt;
        &lt;result&gt;/home.jsp&lt;/result&gt;
    &lt;/action&gt;
&lt;/package&gt;

&lt;package name="instalarSistema" namespace="/instalarSistema" extends="default"&gt;
    &lt;default-interceptor-ref name="mensageriaNFeInstalacaoStack" /&gt;
    &lt;default-action-ref name="instalar!input" /&gt;
    &lt;action name="instalar!*" method="{1}"
  class="br.com.intesis.producaonfe.controller.InstalarSistemaAction"&gt;
        &lt;result name="input"&gt;/WEB-INF/pages/instalarSistema/form.jsp&lt;/result&gt;
        &lt;result&gt;/WEB-INF/pages/instalarSistema/result.jsp&lt;/result&gt;
    &lt;/action&gt;
&lt;/package&gt;

</struts>[/code]

estou desenvolvendo por tentativa, a integracao Struts 2 e Spring funcionou, mas tive problemas na injecao dos interceptors.

Preciso de uma ajuda para começar

Obrigado