Thank you very much Jonathan, I found out a solution by myself after debugging a little bit more:
In my SecurityModule, I added to the contributeProviderManager both providers like this: AuthenticationProvider daoAuth = (AuthenticationProvider) applicationContext.getBean("authenticationProviderA"); configuration.add("authenticationProviderA", daoAuth); AuthenticationProvider authenticationProviderB = (AuthenticationProvider) applicationContext.getBean("authenticationProviderB"); configuration.add("authenticationProviderB", authenticationProviderB); It looks very similar :) Thank you very much for your time and your help! Cheers! On Tue, Nov 22, 2011 at 10:37 AM, Juan Alba <juan.a...@condortech.com.ar>wrote: > First of all thanks for the help Jonathan, but I think that I am not being > clear. > > I already have the two providers (Injecting the applicationcontext as > derkoe told me before). > > Now I want to configure tapestry-spring-security to use both of them so > that if the user is not authenticated with one provider, the application > tries to authenticate it with the other provider. > > For example: > > An user fill in username and password, first it will try to authenticate > with authenticationProviaderA. If the user is not authenticated, it will > try to authenticate with authenticationProviderB (This can be ldap for > example) > > Thanks in advacne. > > On Mon, Nov 21, 2011 at 5:31 PM, Jonathan Barker < > jonathan.theit...@gmail.com> wrote: > >> Can you move the provider building out of Spring into your AppModule so >> you >> can actually specify a service id? >> >> Or, as suggested by Chris, pass ApplicationContext into your >> contributeProviderManager method instead of AuthenticationProvider, and >> then do appContext.getBean("myBeanId") to get a specific provider to >> contribute. >> >> Or, you can get around it by having your AuthenticationProviders implement >> different dummy interfaces that extend AuthenticationProvider. Then, in >> your contribute method, use your dummy interface instead of >> AuthenticationProvider to avoid any confusion about which one you want. >> >> >> On Mon, Nov 21, 2011 at 9:31 AM, Juan Alba <juan.a...@condortech.com.ar >> >wrote: >> >> > Chris, thanks for the tip, >> > >> > What I am still missing is to assign more than one >> authenticationProvider >> > to the ProviderManager. >> > >> > I can see there that it is a List of providers, but I don't know how to >> set >> > this list with all my different authenticationProviders. >> > >> > Does anybody knows? >> > >> > >> > Thanks in advance! >> > >> > On Mon, Nov 21, 2011 at 5:20 AM, derkoe < >> > tapestry.christian.koeb...@gmail.com> wrote: >> > >> > > >> > > kado wrote >> > > > >> > > > Hi, >> > > > >> > > > I am trying to add a facebook provider to my app. >> > > > >> > > > I added the config to the xml and I had created the Class >> > > > FacebookDaoProvider just for testing if everything goes fine but >> when I >> > > > start the server this message is shown: >> > > > >> > > > Construction of service ProviderManager failed: Error invoking >> service >> > > > builder method >> > > > >> > > >> > >> nu.localhost.tapestry5.springsecurity.services.SecurityModule.buildProviderManager(List) >> > > > (at SecurityModule.java:333) (for service 'ProviderManager'): Error >> > > > invoking service contribution method >> > > > >> > > >> > >> ar.com.condor.services.CondorSecurityModule.contributeProviderManager(OrderedConfiguration, >> > > > AuthenticationProvider): Spring context contains 2 beans assignable >> to >> > > > type >> > > > org.springframework.security.providers.AuthenticationProvider: >> > > > daoAuthenticationProvider, facebookDaoProvider. >> > > > >> > > > Does anybody know what I am missing or what I am doing wrong? >> > > > >> > > >> > > The problem is that you have 2 Spring beans binding the same type >> > > (AuthenticationProvider) - Tapestry's injection is based on types, so >> it >> > > cannot determine which service to inject. >> > > >> > > For a solution you can either eliminate one of the two Spring beans or >> > > inject ApplicationContext and get the bean manually. >> > > >> > > -- >> > > Chris >> > > >> > > -- >> > > View this message in context: >> > > >> > >> http://tapestry.1045711.n5.nabble.com/Spring-security-can-t-add-AuthenticationProvider-tp5005539p5009797.html >> > > Sent from the Tapestry - User mailing list archive at Nabble.com. >> > > >> > > --------------------------------------------------------------------- >> > > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> > > For additional commands, e-mail: users-h...@tapestry.apache.org >> > > >> > > >> > >> >> >> >> -- >> Jonathan Barker >> ITStrategic >> > >