001: /*
002: * Copyright 2001-2006 C:1 Financial Services GmbH
003: *
004: * This software is free software; you can redistribute it and/or
005: * modify it under the terms of the GNU Lesser General Public
006: * License Version 2.1, as published by the Free Software Foundation.
007: *
008: * This software is distributed in the hope that it will be useful,
009: * but WITHOUT ANY WARRANTY; without even the implied warranty of
010: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
011: * Lesser General Public License for more details.
012: *
013: * You should have received a copy of the GNU Lesser General Public
014: * License along with this library; if not, write to the Free Software
015: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
016: */
017:
018: package de.finix.contelligent.core.security;
019:
020: import java.util.Collection;
021: import java.util.HashSet;
022:
023: /**
024: * This component represents the princpal of the Contelligent system user.
025: *
026: * Its not clear if we really need this class, at the moment there is one
027: * instance created as constant in interface {@link User} and this instance is
028: * used when we need a user to make a call but don't have one.
029: */
030: public final class SystemUser implements User {
031: // final static org.apache.log4j.Logger log =
032: // LoggingService.getLogger(SystemUser.class);
033:
034: final private String principalId;
035:
036: final private String groupId;
037:
038: final private String stringRep;
039:
040: final private int hashCode;
041:
042: SystemUser(String groupId, String principalId) {
043: this .principalId = principalId;
044: this .groupId = groupId;
045: stringRep = (groupId + ":" + principalId);
046: hashCode = stringRep.hashCode();
047: }
048:
049: // =========================================================================
050: // methods for handling of roles:
051: // =========================================================================
052:
053: public Collection getRoles() {
054: return new HashSet();
055: }
056:
057: public boolean hasRole(Role role) {
058: return false;
059: }
060:
061: // =========================================================================
062: // getter methods of interface User:
063: // =========================================================================
064:
065: public String getName() {
066: return principalId;
067: }
068:
069: public String getGroupId() {
070: return groupId;
071: }
072:
073: /**
074: * Answer the display name of this principal.
075: *
076: * @return display name
077: */
078: public String getDisplayName() {
079: return "System";
080: }
081:
082: /**
083: * Answer a string representation of this principals name and group id.
084: *
085: * @return
086: */
087: public String toPrincipalString() {
088: return stringRep;
089: }
090:
091: /**
092: * Describe <code>equals</code> method here.
093: *
094: * @param anObject
095: * an <code>Object</code> value
096: * @return a <code>boolean</code> value
097: */
098: public boolean equals(Object anObject) {
099: if (this == anObject) {
100: return true;
101: }
102: if (anObject instanceof SystemUser) {
103: SystemUser anotherUser = (SystemUser) anObject;
104: return (this .stringRep.equals(anotherUser.stringRep));
105: }
106: return false;
107: }
108:
109: public String getAlias() {
110: return null;
111: }
112:
113: public int hashCode() {
114: return hashCode;
115: }
116:
117: public String toString() {
118: return ("SystemUser[" + stringRep + "]");
119: }
120:
121: public boolean isAuthenticated() {
122: return true;
123: }
124: }
|