1
/*___INFO__MARK_BEGIN__*/
2
/*************************************************************************
4
* The Contents of this file are made available subject to the terms of
5
* the Sun Industry Standards Source License Version 1.2
7
* Sun Microsystems Inc., March, 2001
10
* Sun Industry Standards Source License Version 1.2
11
* =================================================
12
* The contents of this file are subject to the Sun Industry Standards
13
* Source License Version 1.2 (the "License"); You may not use this file
14
* except in compliance with the License. You may obtain a copy of the
15
* License at http://gridengine.sunsource.net/Gridengine_SISSL_license.html
17
* Software provided under this License is provided on an "AS IS" basis,
18
* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
19
* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
20
* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
21
* See the License for the specific provisions governing your rights and
22
* obligations concerning the Software.
24
* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
26
* Copyright: 2001 by Sun Microsystems, Inc.
28
* All Rights Reserved.
30
************************************************************************/
31
/*___INFO__MARK_END__*/
32
package com.sun.grid.jgdi.security;
34
import java.security.Principal;
39
public class JGDIPrincipal implements Principal, java.io.Serializable {
41
private final static long serialVersionUID = -2007121401L;
43
private final long sessionId;
44
private final String name;
45
private final String username;
47
public final static String SESSION_ID_PREFIX = "(jgdiSessionId=[";
48
public final static String SESSION_ID_SUFFIX = "])";
51
* Create a JGDIPrincipal with a username.
55
* @param username the username for this user.
57
* @param sessionId the id of the session
58
* @exception NullPointerException if the <code>name</code>
59
* is <code>null</code>.
61
public JGDIPrincipal(String username, long sessionId) {
62
if (username == null) {
63
throw new NullPointerException("username must not be null");
65
this.username = username;
66
this.sessionId = sessionId;
68
StringBuilder sb = new StringBuilder();
70
sb.append(SESSION_ID_PREFIX);
72
sb.append(SESSION_ID_SUFFIX);
73
this.name = sb.toString();
77
* Return the username for this <code>JGDIPrincipal</code>.
81
* @return the username for this <code>JGDIPrincipal</code>
83
public String getName() {
88
* Return a string representation of this <code>JGDIPrincipal</code>.
92
* @return a string representation of this <code>JGDIPrincipal</code>.
95
public String toString() {
96
return String.format("JGDIPrincipal: %s", name);
100
* Compares the specified Object with this <code>JGDIPrincipal</code>
101
* for equality. Returns true if the given object is also a
102
* <code>JGDIPrincipal</code> and the two JGDIPrincipals
103
* have the same username.
107
* @param o Object to be compared for equality with this
108
* <code>JGDIPrincipal</code>.
110
* @return true if the specified Object is equal equal to this
111
* <code>JGDIPrincipal</code>.
114
public boolean equals(Object o) {
123
if (!(o instanceof JGDIPrincipal)) {
126
JGDIPrincipal that = (JGDIPrincipal) o;
128
if (this.getName().equals(that.getName())) {
135
* Return a hash code for this <code>JGDIPrincipal</code>.
139
* @return a hash code for this <code>JGDIPrincipal</code>.
142
public int hashCode() {
143
return name.hashCode();
148
* @return the session id
150
public long getSessionId() {
156
* @return the username
158
public String getUsername() {