Spring Security - Autenticação com dois formulários de login diferentes

Olá pessoal, estou criando um sistema em Java EE com Spring Security em que possuo dois formulários de logins diferentes. Um para o administrador e outro para um usuário simples apenas consultar seus dados (no caso os detalhes de um cartão de crédito).

Já consegui fazer funcionar tudo direitinho com um formulário só, mas quando tento adicionar mais uma tag com os detalhes do outro login não dá certo.

Estou criando as configurações em XML e não encontrei um exemplo que possa me ajudar. Alguém já viu algum ou sabe como eu posso fazer?

Obrigada

Opa

Deixa eu compreender a questão.

No primeiro formulário você atribui ao action do form action=“j_spring_security_check” e ao submeter o form o filter do spring-security valida o seu arquivo xml do spring security pra verificar se o usuário é válido e os seus respectivos acessos, certo?

No seu segundo formulário você não faz da mesma forma?

Faço sim, porém os dois tem campos diferentes.
O que eu necessito é um login para o pattern “/card/" e um para o "/”.

Meu arquivo spring-security.xml está assim no momento:

<global-method-security pre-post-annotations="enabled"></global-method-security>			

<beans:bean id="dataSource"
	class="org.springframework.jdbc.datasource.DriverManagerDataSource">
	<beans:property name="driverClassName" value="com.mysql.jdbc.Driver" />
	<beans:property name="url" value="jdbc:mysql://localhost:8081/nomebanco" />
	<beans:property name="username" value="usuario" />
	<beans:property name="password" value="senha" />		
</beans:bean>

<http authentication-manager-ref="cardAuthUserDetails" pattern="/card/**" auto-config="true" use-expressions="true">
	<intercept-url pattern="/card/login-cartao.jsp*" access="permitAll" />
	<intercept-url pattern="/card/acesso-cartao.jsp*" access="hasRole('ROLE_USUARIO_CARTAO')" />
	<form-login login-page="/card/login-cartao.jsp" default-target-url="/acesso-cartao.jsp"
		authentication-failure-url="/card/login-cartao.jsp?status=error"
		username-parameter="numeroCartao" password-parameter="senhaCartao" />
	<logout invalidate-session="true" logout-success-url="/card/login-cartao.jsp" delete-cookies="JSESSIONID" />
	<access-denied-handler error-page="/acesso-negado.jsp" />
	<csrf disabled="true" />
</http>

<http authentication-manager-ref="authUserDetails" pattern="/**" auto-config="true" use-expressions="true">
	<intercept-url pattern="/rest/**" access="permitAll" />
	<intercept-url pattern="/index.jsp*" access="permitAll" />
	<intercept-url pattern="/login.jsp*" access="permitAll" />
	<intercept-url pattern="/dashboard.jsp" access="isAuthenticated()" />
	<intercept-url pattern="/configuracoes.jsp*" access="hasRole('ROLE_CONFIGURACOES')" />
	<intercept-url pattern="/cadastro-cliente.jsp*" access="hasRole('ROLE_CADASTRO_CLIENTE')" />
	<form-login login-page="/login.jsp" default-target-url="/dashboard.jsp"
		authentication-failure-url="/login.jsp?status=error"
		username-parameter="username" password-parameter="password" />
	<logout invalidate-session="true" logout-success-url="/login.jsp" delete-cookies="JSESSIONID" />
	<access-denied-handler error-page="/acesso-negado.jsp" />
	<remember-me key="uniqueAndSecret" />
	<csrf disabled="true" />
</http>

<authentication-manager>
	<authentication-provider ref="authUserDetails"></authentication-provider>
	<authentication-provider ref="cardAuthUserDetails"></authentication-provider>
</authentication-manager>

<beans:bean id="authUserDetails" class="br.com.zixcard.security.AuthUserDetails"></beans:bean>
<beans:bean id="cardAuthUserDetails" class="br.com.zixcard.security.AuthUserDetailsCard"></beans:bean>

</beans:beans>

… continua na próxima resposta.

Criei uma classe userDetails para o login normal, e uma para o login com cartão. Quando uso só uma pagina de login tudo funciona, ms quando adiciono o novo authentication-provider e o novo bean, dá esse erro.

Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.filterChains': Cannot resolve reference to bean 'org.springframework.security.web.DefaultSecurityFilterChain#0' while setting bean property 'sourceList' with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.web.DefaultSecurityFilterChain#0': Cannot resolve reference to bean 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0' while setting constructor argument with key [4]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0': Cannot resolve reference to bean 'org.springframework.security.authentication.ProviderManager#0' while setting bean property 'authenticationManager'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.security.authentication.ProviderManager#0': Unsatisfied dependency expressed through constructor argument with index 1 of type [org.springframework.security.authentication.AuthenticationManager]: Could not convert constructor argument value of type [br.com.zixcard.security.AuthUserDetailsCard] to required type [org.springframework.security.authentication.AuthenticationManager]: Failed to convert value of type 'br.com.zixcard.security.AuthUserDetailsCard' to required type 'org.springframework.security.authentication.AuthenticationManager'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [br.com.zixcard.security.AuthUserDetailsCard] to required type [org.springframework.security.authentication.AuthenticationManager]: no matching editors or conversion strategy found
Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.filterChains': Cannot resolve reference to bean 'org.springframework.security.web.DefaultSecurityFilterChain#0' while setting bean property 'sourceList' with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.web.DefaultSecurityFilterChain#0': Cannot resolve reference to bean 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0' while setting constructor argument with key [4]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0': Cannot resolve reference to bean 'org.springframework.security.authentication.ProviderManager#0' while setting bean property 'authenticationManager'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.security.authentication.ProviderManager#0': Unsatisfied dependency expressed through constructor argument with index 1 of type [org.springframework.security.authentication.AuthenticationManager]: Could not convert constructor argument value of type [br.com.zixcard.security.AuthUserDetailsCard] to required type [org.springframework.security.authentication.AuthenticationManager]: Failed to convert value of type 'br.com.zixcard.security.AuthUserDetailsCard' to required type 'org.springframework.security.authentication.AuthenticationManager'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [br.com.zixcard.security.AuthUserDetailsCard] to required type [org.springframework.security.authentication.AuthenticationManager]: no matching editors or conversion strategy found
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:382)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:157)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1481)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1226)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:753)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:838)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537)
	at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:446)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:328)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
	at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:794)
	at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:522)
	at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:785)
	at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:341)
	at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1357)
	at org.eclipse.jetty.maven.plugin.JettyWebAppContext.startWebapp(JettyWebAppContext.java:297)
	at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1350)
	at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:734)
	at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:258)
	at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:512)
	at org.eclipse.jetty.maven.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:369)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:161)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
	at org.eclipse.jetty.server.Server.start(Server.java:405)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
	at org.eclipse.jetty.server.Server.doStart(Server.java:372)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
	at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:467)
	at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:338)
	at org.eclipse.jetty.maven.plugin.JettyRunMojo.execute(JettyRunMojo.java:161)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.web.DefaultSecurityFilterChain#0': Cannot resolve reference to bean 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0' while setting constructor argument with key [4]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0': Cannot resolve reference to bean 'org.springframework.security.authentication.ProviderManager#0' while setting bean property 'authenticationManager'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.security.authentication.ProviderManager#0': Unsatisfied dependency expressed through constructor argument with index 1 of type [org.springframework.security.authentication.AuthenticationManager]: Could not convert constructor argument value of type [br.com.zixcard.security.AuthUserDetailsCard] to required type [org.springframework.security.authentication.AuthenticationManager]: Failed to convert value of type 'br.com.zixcard.security.AuthUserDetailsCard' to required type 'org.springframework.security.authentication.AuthenticationManager'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [br.com.zixcard.security.AuthUserDetailsCard] to required type [org.springframework.security.authentication.AuthenticationManager]: no matching editors or conversion strategy found
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:382)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:157)
	at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:634)
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:140)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1143)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1046)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351)
	... 69 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0': Cannot resolve reference to bean 'org.springframework.security.authentication.ProviderManager#0' while setting bean property 'authenticationManager'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.security.authentication.ProviderManager#0': Unsatisfied dependency expressed through constructor argument with index 1 of type [org.springframework.security.authentication.AuthenticationManager]: Could not convert constructor argument value of type [br.com.zixcard.security.AuthUserDetailsCard] to required type [org.springframework.security.authentication.AuthenticationManager]: Failed to convert value of type 'br.com.zixcard.security.AuthUserDetailsCard' to required type 'org.springframework.security.authentication.AuthenticationManager'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [br.com.zixcard.security.AuthUserDetailsCard] to required type [org.springframework.security.authentication.AuthenticationManager]: no matching editors or conversion strategy found
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1481)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1226)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351)
	... 83 more
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.security.authentication.ProviderManager#0': Unsatisfied dependency expressed through constructor argument with index 1 of type [org.springframework.security.authentication.AuthenticationManager]: Could not convert constructor argument value of type [br.com.zixcard.security.AuthUserDetailsCard] to required type [org.springframework.security.authentication.AuthenticationManager]: Failed to convert value of type 'br.com.zixcard.security.AuthUserDetailsCard' to required type 'org.springframework.security.authentication.AuthenticationManager'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [br.com.zixcard.security.AuthUserDetailsCard] to required type [org.springframework.security.authentication.AuthenticationManager]: no matching editors or conversion strategy found
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:724)
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:185)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1143)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1046)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351)
	... 93 more
[WARNING] Failed startup of context o.e.j.m.p.JettyWebAppContext@397aab54{/,file:///C:/projetos/zixcard/src/main/webapp/,STARTING}{file:///C:/projetos/zixcard/src/main/webapp/}
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.filterChains': Cannot resolve reference to bean 'org.springframework.security.web.DefaultSecurityFilterChain#0' while setting bean property 'sourceList' with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.web.DefaultSecurityFilterChain#0': Cannot resolve reference to bean 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0' while setting constructor argument with key [4]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0': Cannot resolve reference to bean 'org.springframework.security.authentication.ProviderManager#0' while setting bean property 'authenticationManager'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.security.authentication.ProviderManager#0': Unsatisfied dependency expressed through constructor argument with index 1 of type [org.springframework.security.authentication.AuthenticationManager]: Could not convert constructor argument value of type [br.com.zixcard.security.AuthUserDetailsCard] to required type [org.springframework.security.authentication.AuthenticationManager]: Failed to convert value of type 'br.com.zixcard.security.AuthUserDetailsCard' to required type 'org.springframework.security.authentication.AuthenticationManager'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [br.com.zixcard.security.AuthUserDetailsCard] to required type [org.springframework.security.authentication.AuthenticationManager]: no matching editors or conversion strategy found
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:382)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:157)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1481)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1226)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:753)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:838)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537)
	at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:446)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:328)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
	at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:794)
	at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:522)
	at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:785)
	at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:341)
	at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1357)
	at org.eclipse.jetty.maven.plugin.JettyWebAppContext.startWebapp(JettyWebAppContext.java:297)
	at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1350)
	at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:734)
	at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:258)
	at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:512)
	at org.eclipse.jetty.maven.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:369)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:161)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
	at org.eclipse.jetty.server.Server.start(Server.java:405)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
	at org.eclipse.jetty.server.Server.doStart(Server.java:372)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
	at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:467)
	at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:338)
	at org.eclipse.jetty.maven.plugin.JettyRunMojo.execute(JettyRunMojo.java:161)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.web.DefaultSecurityFilterChain#0': Cannot resolve reference to bean 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0' while setting constructor argument with key [4]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0': Cannot resolve reference to bean 'org.springframework.security.authentication.ProviderManager#0' while setting bean property 'authenticationManager'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.security.authentication.ProviderManager#0': Unsatisfied dependency expressed through constructor argument with index 1 of type [org.springframework.security.authentication.AuthenticationManager]: Could not convert constructor argument value of type [br.com.zixcard.security.AuthUserDetailsCard] to required type [org.springframework.security.authentication.AuthenticationManager]: Failed to convert value of type 'br.com.zixcard.security.AuthUserDetailsCard' to required type 'org.springframework.security.authentication.AuthenticationManager'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [br.com.zixcard.security.AuthUserDetailsCard] to required type [org.springframework.security.authentication.AuthenticationManager]: no matching editors or conversion strategy found
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:382)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:157)
	at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:634)
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:140)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1143)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1046)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351)
	... 69 more

HELP!

Você precisar utilizar as configurações de Multiple Authentication para o spring security.

Veja esse exemplo

Como você possui dois forms de login (páginas diferentes?) em cada configuração de security você informa qual o form.

<security:form-login login-page="/login" ...
<security:form-login login-page="/login2" ...

Estou tento bastante dificuldade.

Com essa configuração xml (somente um form login) funciona perfeitamente. pode me dar um exemplo de como alterar para os dois logins?

<global-method-security pre-post-annotations="enabled"></global-method-security>			

<beans:bean id="dataSource"
	class="org.springframework.jdbc.datasource.DriverManagerDataSource">
	<beans:property name="driverClassName" value="com.mysql.jdbc.Driver" />
	<beans:property name="url" value="jdbc:mysql://localhost:8081/nomebanco" />
	<beans:property name="username" value="usuario" />
	<beans:property name="password" value="senha" />

</beans:bean>

<http auto-config="true" use-expressions="true">
	<intercept-url pattern="/index.jsp*" access="permitAll" />
	<intercept-url pattern="/login.jsp*" access="permitAll" />
	<intercept-url pattern="/dashboard.jsp" access="isAuthenticated()" />
	<intercept-url pattern="/configuracoes.jsp*" access="hasRole('ROLE_CONFIGURACOES')" />
	<intercept-url pattern="/cadastro-cliente.jsp*" access="hasRole('ROLE_CADASTRO_CLIENTE')" />
	<form-login login-page="/login.jsp" default-target-url="/dashboard.jsp"
		authentication-failure-url="/login.jsp?status=error"
		username-parameter="username" password-parameter="password" />
	<logout invalidate-session="true" logout-success-url="/login.jsp" delete-cookies="JSESSIONID" />
	<access-denied-handler error-page="/acesso-negado.jsp" />
	<remember-me key="uniqueAndSecret" />
	<csrf disabled="true" />
</http>

<authentication-manager alias="authenticationManager">
	<authentication-provider user-service-ref="authUserDetails">
	</authentication-provider>
</authentication-manager>

<beans:bean id="authUserDetails" class="br.com.zixcard.security.AuthUserDetails"></beans:bean>

</beans:beans>

Aguardo.

Tô meio corrido aqui,

Mas seria algo como

<security:http use-expressions="false" authentication-manager-ref="cardAuthUserDetails">
        <security:form-login login-page="/suaPaginaLogin1"
            //suas configurações
            login-processing-url="/login" username-parameter="custom_username"
            password-parameter="custom_password" default-target-url="/appointments/"
            always-use-default-target="true" authentication-failure-url="/login?error=true" />

        <security:logout logout-url="/logout"
            logout-success-url="/login?logout=true" />

        <security:intercept-url pattern="/appointments/*"
            access="ROLE_USER,ROLE_ADMIN" />
        <security:intercept-url pattern="/schedule/*"
            access="ROLE_ADMIN" />

    </security:http>

<security:http use-expressions="false" authentication-manager-ref="authUserDetails">
        <security:form-login login-page="/suaPaginaLogin2"
	    //suas configurações
            login-processing-url="/login" username-parameter="custom_username"
            password-parameter="custom_password" default-target-url="/appointments/"
            always-use-default-target="true" authentication-failure-url="/login?error=true" />

        <security:logout logout-url="/logout"
            logout-success-url="/login?logout=true" />

        <security:intercept-url pattern="/**"
            access="ROLE_USER,ROLE_ADMIN" />    
    </security:http>

Você marcando sua página de login

<security:form-login login-page="/suaPaginaLogin2"

Quando chamar de uma página, direciona pra uma das configurações e quando chamar de outra vai para a segunda configuração.