01: /*
02: JSPWiki - a JSP-based WikiWiki clone.
03:
04: Copyright (C) 2001-2007 Janne Jalkanen (Janne.Jalkanen@iki.fi)
05:
06: This program is free software; you can redistribute it and/or modify
07: it under the terms of the GNU Lesser General Public License as published by
08: the Free Software Foundation; either version 2.1 of the License, or
09: (at your option) any later version.
10:
11: This program is distributed in the hope that it will be useful,
12: but WITHOUT ANY WARRANTY; without even the implied warranty of
13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14: GNU Lesser General Public License for more details.
15:
16: You should have received a copy of the GNU Lesser General Public License
17: along with this program; if not, write to the Free Software
18: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19: */
20: package com.ecyrd.jspwiki.auth.acl;
21:
22: import java.security.Principal;
23:
24: /**
25: * Represents a Principal, typically read from an ACL, that cannot
26: * be resolved based on the current state of the user database, group
27: * manager, and built-in role definitions.
28: * Creating a principal marked "unresolved" allows
29: * delayed resolution, which enables principals to be resolved
30: * lazily during a later access control check. Conceptuallly,
31: * UnresolvedPrincipal performs a function similar to
32: * {@link java.security.UnresolvedPermission}.
33: *
34: * @author Andrew Jaquith
35: * @since 2.3
36: */
37: public final class UnresolvedPrincipal implements Principal {
38:
39: private final String m_name;
40:
41: /**
42: * Constructs a new UnresolvedPrincipal instance.
43: * @param name the name of the Principal
44: */
45: public UnresolvedPrincipal(String name) {
46: m_name = name;
47: }
48:
49: /**
50: * Returns the name of the principal.
51: * @return the name
52: * @see java.security.Principal#getName()
53: */
54: public final String getName() {
55: return m_name;
56: }
57:
58: /**
59: * Returns a String representation of the UnresolvedPrincipal.
60: * @return the String
61: */
62: public final String toString() {
63: return "[UnresolvedPrincipal: " + m_name + "]";
64: }
65:
66: /**
67: * An unresolved principal is equal to another
68: * unresolved principal if their names match.
69: * @param obj the object to compare to this one
70: * @return the result of the equality test
71: * @see java.lang.Object#equals(java.lang.Object)
72: */
73: public final boolean equals(Object obj) {
74: if (obj instanceof UnresolvedPrincipal) {
75: return m_name.equals(((UnresolvedPrincipal) obj).m_name);
76: }
77: return false;
78: }
79:
80: /**
81: * The hashCode of this object is equal to the hash code of its name.
82: * @return the hash code
83: */
84: public final int hashCode() {
85: return m_name.hashCode();
86: }
87: }
|