|
|
|
|
@ -1,4 +1,4 @@
@@ -1,4 +1,4 @@
|
|
|
|
|
/* Copyright 2004, 2005 Acegi Technology Pty Limited |
|
|
|
|
/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited |
|
|
|
|
* |
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
|
@ -16,7 +16,9 @@
@@ -16,7 +16,9 @@
|
|
|
|
|
package org.acegisecurity.providers.dao.salt; |
|
|
|
|
|
|
|
|
|
import org.acegisecurity.AuthenticationServiceException; |
|
|
|
|
|
|
|
|
|
import org.acegisecurity.providers.dao.SaltSource; |
|
|
|
|
|
|
|
|
|
import org.acegisecurity.userdetails.UserDetails; |
|
|
|
|
|
|
|
|
|
import org.springframework.beans.factory.InitializingBean; |
|
|
|
|
@ -44,6 +46,14 @@ public class ReflectionSaltSource implements SaltSource, InitializingBean {
@@ -44,6 +46,14 @@ public class ReflectionSaltSource implements SaltSource, InitializingBean {
|
|
|
|
|
|
|
|
|
|
//~ Methods ================================================================
|
|
|
|
|
|
|
|
|
|
public void afterPropertiesSet() throws Exception { |
|
|
|
|
if ((this.getUserPropertyToUse() == null) |
|
|
|
|
|| "".equals(this.getUserPropertyToUse())) { |
|
|
|
|
throw new IllegalArgumentException( |
|
|
|
|
"A userPropertyToUse must be set"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Performs reflection on the passed <code>User</code> to obtain the salt. |
|
|
|
|
* |
|
|
|
|
@ -62,15 +72,21 @@ public class ReflectionSaltSource implements SaltSource, InitializingBean {
@@ -62,15 +72,21 @@ public class ReflectionSaltSource implements SaltSource, InitializingBean {
|
|
|
|
|
*/ |
|
|
|
|
public Object getSalt(UserDetails user) { |
|
|
|
|
try { |
|
|
|
|
Method reflectionMethod = user.getClass().getMethod(this.userPropertyToUse, |
|
|
|
|
Method reflectionMethod = user.getClass() |
|
|
|
|
.getMethod(this.userPropertyToUse, |
|
|
|
|
new Class[] {}); |
|
|
|
|
|
|
|
|
|
return reflectionMethod.invoke(user, new Object[] {}); |
|
|
|
|
} catch (Exception exception) { |
|
|
|
|
throw new AuthenticationServiceException(exception.getMessage()); |
|
|
|
|
throw new AuthenticationServiceException(exception.getMessage(), |
|
|
|
|
exception); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public String getUserPropertyToUse() { |
|
|
|
|
return userPropertyToUse; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* The method name to call to obtain the salt. If your |
|
|
|
|
* <code>UserDetails</code> contains a <code>UserDetails.getSalt()</code> |
|
|
|
|
@ -82,16 +98,4 @@ public class ReflectionSaltSource implements SaltSource, InitializingBean {
@@ -82,16 +98,4 @@ public class ReflectionSaltSource implements SaltSource, InitializingBean {
|
|
|
|
|
public void setUserPropertyToUse(String userPropertyToUse) { |
|
|
|
|
this.userPropertyToUse = userPropertyToUse; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public String getUserPropertyToUse() { |
|
|
|
|
return userPropertyToUse; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void afterPropertiesSet() throws Exception { |
|
|
|
|
if ((this.getUserPropertyToUse() == null) |
|
|
|
|
|| "".equals(this.getUserPropertyToUse())) { |
|
|
|
|
throw new IllegalArgumentException( |
|
|
|
|
"A userPropertyToUse must be set"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|