| 
					
				 | 
			
			
				@@ -29,9 +29,6 @@ import org.springframework.util.Assert; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * a <code>String</code>). Developers may use this class directly, subclass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * it, or write their own {@link UserDetails} implementation from scratch. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * </p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * @author Ben Alex 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * @version $Id$ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public class User implements UserDetails { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //~ Instance fields ======================================================== 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -46,6 +43,10 @@ public class User implements UserDetails { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //~ Constructors =========================================================== 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    protected User() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        throw new IllegalArgumentException("Cannot use default constructor"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * Construct the <code>User</code> with the details required by {@link 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * DaoAuthenticationProvider}. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -129,61 +130,22 @@ public class User implements UserDetails { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         boolean accountNonExpired, boolean credentialsNonExpired, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         boolean accountNonLocked, GrantedAuthority[] authorities) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         throws IllegalArgumentException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (((username == null) || "".equals(username)) || (password == null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            || (authorities == null)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (((username == null) || "".equals(username)) || (password == null)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             throw new IllegalArgumentException( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 "Cannot pass null or empty values to constructor"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for (int i = 0; i < authorities.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Assert.notNull(authorities[i], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                "Granted authority element " + i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                + " is null - GrantedAuthority[] cannot contain any null elements"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.username = username; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.password = password; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.enabled = enabled; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.authorities = authorities; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.accountNonExpired = accountNonExpired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.credentialsNonExpired = credentialsNonExpired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.accountNonLocked = accountNonLocked; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    protected User() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        throw new IllegalArgumentException("Cannot use default constructor"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        setAuthorities(authorities); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //~ Methods ================================================================ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public boolean isAccountNonExpired() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return accountNonExpired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public boolean isAccountNonLocked() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return this.accountNonLocked; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public GrantedAuthority[] getAuthorities() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return authorities; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public boolean isCredentialsNonExpired() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return credentialsNonExpired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public boolean isEnabled() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return enabled; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public String getPassword() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return password; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public String getUsername() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return username; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public boolean equals(Object rhs) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!(rhs instanceof User) || (rhs == null)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return false; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -211,6 +173,46 @@ public class User implements UserDetails { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         && (this.isEnabled() == user.isEnabled())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public GrantedAuthority[] getAuthorities() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return authorities; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public String getPassword() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return password; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public String getUsername() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return username; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public boolean isAccountNonExpired() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return accountNonExpired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public boolean isAccountNonLocked() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return this.accountNonLocked; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public boolean isCredentialsNonExpired() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return credentialsNonExpired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public boolean isEnabled() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return enabled; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    protected void setAuthorities(GrantedAuthority[] authorities) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Assert.notNull(authorities, "Cannot pass a null GrantedAuthority array"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (int i = 0; i < authorities.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Assert.notNull(authorities[i], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "Granted authority element " + i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                + " is null - GrantedAuthority[] cannot contain any null elements"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.authorities = authorities; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public String toString() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         StringBuffer sb = new StringBuffer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sb.append(super.toString() + ": "); 
			 |