You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by bongosdude <bo...@gmail.com> on 2009/01/29 03:14:54 UTC

Tapestry-Spring-Security Exception when using PlainText Encoder

Hi,

I am using PlainText password encoder now to test before I can change logic
to provision UserDetails with MD5 or SHA encoded password. The problems are:

1. org.springframework.security append saltsource to plain text password if
saltsource is not null or emtpy. If my password is 123456 and my saltsource
is "clear" than it compares the password from DB with 123456{clear}.

2. If I do not set saltsource or set it to empty, Tapestry-spring-security
throws the below exception. I believe, Tapestry-spring-security assumes that
password encoder is not plain text.

(nu.localhost.tapestry5.springsecurity.services.SecurityModule.buildSaltSource(String))


Caused by: org.apache.tapestry5.ioc.internal.OperationException: Error
invoking service builder method
nu.localhost.tapestry5.springsecurity.services.SecurityModule.buildSaltSource(String)
(at SecurityModule.java:121) (for service 'SaltSource'): A systemWideSalt
must be set
	at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:70)
	at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:89)
	at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
	at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:898)
	at
org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
	at
org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29)
	at
org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:52)
	at
org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:56)
	at
org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60)
	at
org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
	at
org.apache.tapestry5.ioc.internal.InvokableToRunnable.run(InvokableToRunnable.java:36)
	at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:48)
	at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:89)
	at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
	at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:898)
	at
org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
	at
org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:65)
	... 42 more
Caused by: java.lang.RuntimeException: Error invoking service builder method
nu.localhost.tapestry5.springsecurity.services.SecurityModule.buildSaltSource(String)
(at SecurityModule.java:121) (for service 'SaltSource'): A systemWideSalt
must be set
	at
org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:87)
	at
org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
	at
org.apache.tapestry5.ioc.internal.InvokableToRunnable.run(InvokableToRunnable.java:36)
	at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:48)
	... 58 more
Caused by: java.lang.IllegalArgumentException: A systemWideSalt must be set
	at
org.springframework.security.providers.dao.salt.SystemWideSaltSource.afterPropertiesSet(SystemWideSaltSource.java:42)
	at
nu.localhost.tapestry5.springsecurity.services.SecurityModule.buildSaltSource(SecurityModule.java:123)
	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:585)
	at
org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:75)


-----
B Amigo:super:
-- 
View this message in context: http://www.nabble.com/Tapestry-Spring-Security-Exception-when-using-PlainText-Encoder-tp21719600p21719600.html
Sent from the Tapestry - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Tapestry-Spring-Security Exception when using PlainText Encoder

Posted by Ulrich Stärk <ul...@spielviel.de>.
Add the following to your AppModule:

public static void 
contributeAliasOverrides(Configuration<AliasContribution<?>> configuration)
{
	SaltSourceService saltSource = new SaltSourceService() {
		public Object getSalt(UserDetails user) {
			return null;
		}
	};
	
	configuration.add(AliasContribution.create(SaltSourceService.class, 
saltSource));
}

Uli

bongosdude schrieb:
> Hi,
> 
> I am using PlainText password encoder now to test before I can change logic
> to provision UserDetails with MD5 or SHA encoded password. The problems are:
> 
> 1. org.springframework.security append saltsource to plain text password if
> saltsource is not null or emtpy. If my password is 123456 and my saltsource
> is "clear" than it compares the password from DB with 123456{clear}.
> 
> 2. If I do not set saltsource or set it to empty, Tapestry-spring-security
> throws the below exception. I believe, Tapestry-spring-security assumes that
> password encoder is not plain text.
> 
> (nu.localhost.tapestry5.springsecurity.services.SecurityModule.buildSaltSource(String))
> 
> 
> Caused by: org.apache.tapestry5.ioc.internal.OperationException: Error
> invoking service builder method
> nu.localhost.tapestry5.springsecurity.services.SecurityModule.buildSaltSource(String)
> (at SecurityModule.java:121) (for service 'SaltSource'): A systemWideSalt
> must be set
> 	at
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:70)
> 	at
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:89)
> 	at
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
> 	at
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:898)
> 	at
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
> 	at
> org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29)
> 	at
> org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:52)
> 	at
> org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:56)
> 	at
> org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60)
> 	at
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
> 	at
> org.apache.tapestry5.ioc.internal.InvokableToRunnable.run(InvokableToRunnable.java:36)
> 	at
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:48)
> 	at
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:89)
> 	at
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)
> 	at
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:898)
> 	at
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
> 	at
> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:65)
> 	... 42 more
> Caused by: java.lang.RuntimeException: Error invoking service builder method
> nu.localhost.tapestry5.springsecurity.services.SecurityModule.buildSaltSource(String)
> (at SecurityModule.java:121) (for service 'SaltSource'): A systemWideSalt
> must be set
> 	at
> org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:87)
> 	at
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
> 	at
> org.apache.tapestry5.ioc.internal.InvokableToRunnable.run(InvokableToRunnable.java:36)
> 	at
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:48)
> 	... 58 more
> Caused by: java.lang.IllegalArgumentException: A systemWideSalt must be set
> 	at
> org.springframework.security.providers.dao.salt.SystemWideSaltSource.afterPropertiesSet(SystemWideSaltSource.java:42)
> 	at
> nu.localhost.tapestry5.springsecurity.services.SecurityModule.buildSaltSource(SecurityModule.java:123)
> 	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:585)
> 	at
> org.apache.tapestry5.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:75)
> 
> 
> -----
> B Amigo:super:


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org