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>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- FILTROS -->
<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>
<filter>
<filter-name>requestContextFilter</filter-name>
<filter-class>org.springframework.web.filter.RequestContextFilter</filter-class>
</filter>
<filter>
<filter-name>character-encoding</filter-name>
<filter-class>br.com.intesis.producaonfe.CharacterEncodingFilter</filter-class>
</filter>
<filter>
<filter-name>struts-prepare</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class>
</filter>
<filter>
<filter-name>struts-execute</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>requestContextFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>character-encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts-prepare</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts-execute</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Welcome file lists -->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</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”>
<!-- SPRING SECURITY -->
<http auto-config="true" access-denied-page="/acessonegado.jsp" use-expressions="true">
<intercept-url pattern="/admin/**" access="hasAnyRole('ROLE_MANAGER','ROLE_ADMIN')" />
<intercept-url pattern="/pages/**" access="hasAnyRole('ROLE_MANAGER','ROLE_ADMIN','ROLE_USER')"/>
<intercept-url pattern="/home.jsp" access="permitAll"/>
<form-login login-page="/login.jsp" authentication-failure-url="/login.jsp?error=invalido"/>
<openid-login authentication-success-handler-ref="openIdAuthenticationHandler">
<attribute-exchange>
<openid-attribute name="email" type="http://schema.openid.net/contact/email"/>
</attribute-exchange>
</openid-login>
</http>
<authentication-manager>
<authentication-provider>
<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=?"
/>
</authentication-provider>
</authentication-manager>
<b:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
<b:property name="url" value="jdbc:mysql://192.168.0.45:3306/mensagerianfe" />
<b:property name="driverClassName" value="com.mysql.jdbc.Driver" />
<b:property name="username" value="root" />
<b:property name="password" value="senha" />
</b:bean>
<b:bean id="openIdAuthenticationHandler" class="MeuAuthenticationSuccessHandler"/>
<!-- BEANS -->
<bean id="usuarioRepository" class="br.com.intesis.producaonfe.infrastructure.UsuarioDecorator">
<property name="dao">
<bean name="GenericJPADAO" class="br.com.intesis.producaonfe.infrastructure.dao.GenericJPADAO">
<constructor-arg value="br.com.intesis.producaonfe.domain.Usuario" />
</bean>
</property>
</bean>
</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>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" extends="struts-default">
<interceptors>
<interceptor name="verificarInstalacao"
class="br.com.intesis.producaonfe.controller.VerificarInstalacaoInterceptor" />
<interceptor-stack name="mensageriaNFeInstalacaoStack">
<interceptor-ref name="exception" />
<interceptor-ref name="alias" />
<interceptor-ref name="servletConfig" />
<interceptor-ref name="i18n" />
<interceptor-ref name="prepare" />
<interceptor-ref name="chain" />
<interceptor-ref name="debugging" />
<interceptor-ref name="profiling" />
<interceptor-ref name="scopedModelDriven" />
<interceptor-ref name="modelDriven" />
<interceptor-ref name="fileUpload" />
<interceptor-ref name="checkbox" />
<interceptor-ref name="staticParams" />
<interceptor-ref name="actionMappingParams" />
<interceptor-ref name="params">
<param name="excludeParams">dojo\..*,^struts\..*</param>
</interceptor-ref>
<interceptor-ref name="conversionError" />
<interceptor-ref name="validation">
<param name="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
<interceptor-ref name="jsonValidation" />
<interceptor-ref name="workflow">
<param name="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
</interceptor-stack>
<interceptor-stack name="mensageriaNFeStack">
<interceptor-ref name="verificarInstalacao" />
<interceptor-ref name="mensageriaNFeInstalacaoStack" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="mensageriaNFeStack" />
<default-action-ref name="home" />
<global-results>
<result name="instalar" type="chain">
<param name="actionName">instalar!input</param>
<param name="namespace">/instalarSistema</param>
</result>
<result name="acesso_negado">/acessonegado.jsp</result>
</global-results>
<action name="home" class="br.com.intesis.producaonfe.controller.HomeAction">
<result>/home.jsp</result>
</action>
<action name="login" class="br.com.intesis.producaonfe.controller.LoginAction">
<result name="input">/home.jsp</result>
<result>/home.jsp</result>
</action>
<action name="logout" class="br.com.intesis.producaonfe.controller.LoginAction" method="logout">
<result>/home.jsp</result>
</action>
</package>
<package name="instalarSistema" namespace="/instalarSistema" extends="default">
<default-interceptor-ref name="mensageriaNFeInstalacaoStack" />
<default-action-ref name="instalar!input" />
<action name="instalar!*" method="{1}"
class="br.com.intesis.producaonfe.controller.InstalarSistemaAction">
<result name="input">/WEB-INF/pages/instalarSistema/form.jsp</result>
<result>/WEB-INF/pages/instalarSistema/result.jsp</result>
</action>
</package>
</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