1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.acegisecurity.providers;
17
18 import org.acegisecurity.Authentication;
19 import org.acegisecurity.userdetails.UserDetails;
20
21
22 /***
23 * Provides a <code>String</code> representation of the Authentication token.
24 *
25 * @author Ben Alex
26 * @version $Id: AbstractAuthenticationToken.java,v 1.10 2005/11/29 13:10:09 benalex Exp $
27 */
28 public abstract class AbstractAuthenticationToken implements Authentication {
29
30
31 /***
32 * Subclasses should override if they wish to provide additional details
33 * about the authentication event.
34 *
35 * @return always <code>null</code>
36 */
37 public Object getDetails() {
38 return null;
39 }
40
41 public String getName() {
42 if (this.getPrincipal() instanceof UserDetails) {
43 return ((UserDetails) this.getPrincipal()).getUsername();
44 }
45
46 return this.getPrincipal().toString();
47 }
48
49 public boolean equals(Object obj) {
50 if (obj instanceof AbstractAuthenticationToken) {
51 AbstractAuthenticationToken test = (AbstractAuthenticationToken) obj;
52
53 if (!((this.getAuthorities() == null)
54 && (test.getAuthorities() == null))) {
55 if ((this.getAuthorities() == null)
56 || (test.getAuthorities() == null)) {
57 return false;
58 }
59
60 if (this.getAuthorities().length != test.getAuthorities().length) {
61 return false;
62 }
63
64 for (int i = 0; i < this.getAuthorities().length; i++) {
65 if (!this.getAuthorities()[i].equals(
66 test.getAuthorities()[i])) {
67 return false;
68 }
69 }
70 }
71
72 return (this.getPrincipal().equals(test.getPrincipal())
73 && this.getCredentials().equals(test.getCredentials())
74 && (this.isAuthenticated() == test.isAuthenticated()));
75 }
76
77 return false;
78 }
79
80 public String toString() {
81 StringBuffer sb = new StringBuffer();
82 sb.append(super.toString()).append(": ");
83 sb.append("Username: ").append(this.getPrincipal()).append("; ");
84 sb.append("Password: [PROTECTED]; ");
85 sb.append("Authenticated: ").append(this.isAuthenticated()).append("; ");
86 sb.append("Details: ").append(this.getDetails()).append("; ");
87
88 if (this.getAuthorities() != null) {
89 sb.append("Granted Authorities: ");
90
91 for (int i = 0; i < this.getAuthorities().length; i++) {
92 if (i > 0) {
93 sb.append(", ");
94 }
95
96 sb.append(this.getAuthorities()[i].toString());
97 }
98 } else {
99 sb.append("Not granted any authorities");
100 }
101
102 return sb.toString();
103 }
104 }