~ubuntu-branches/ubuntu/utopic/gridengine/utopic

« back to all changes in this revision

Viewing changes to source/libs/jgdi/src/com/sun/grid/jgdi/security/JGDIPrincipal.java

  • Committer: Bazaar Package Importer
  • Author(s): Mark Hymers
  • Date: 2008-06-25 22:36:13 UTC
  • Revision ID: james.westby@ubuntu.com-20080625223613-tvd9xlhuoct9kyhm
Tags: upstream-6.2~beta2
ImportĀ upstreamĀ versionĀ 6.2~beta2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*___INFO__MARK_BEGIN__*/
 
2
/*************************************************************************
 
3
 *
 
4
 *  The Contents of this file are made available subject to the terms of
 
5
 *  the Sun Industry Standards Source License Version 1.2
 
6
 *
 
7
 *  Sun Microsystems Inc., March, 2001
 
8
 *
 
9
 *
 
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
 
16
 *
 
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.
 
23
 *
 
24
 *   The Initial Developer of the Original Code is: Sun Microsystems, Inc.
 
25
 *
 
26
 *   Copyright: 2001 by Sun Microsystems, Inc.
 
27
 *
 
28
 *   All Rights Reserved.
 
29
 *
 
30
 ************************************************************************/
 
31
/*___INFO__MARK_END__*/
 
32
package com.sun.grid.jgdi.security;
 
33
 
 
34
import java.security.Principal;
 
35
 
 
36
/**
 
37
 *
 
38
 */
 
39
public class JGDIPrincipal implements Principal, java.io.Serializable {
 
40
 
 
41
    private final static long serialVersionUID = -2007121401L;
 
42
    
 
43
    private final long sessionId;
 
44
    private final String name;
 
45
    private final String username;
 
46
 
 
47
    public final static String SESSION_ID_PREFIX = "(jgdiSessionId=[";
 
48
    public final static String SESSION_ID_SUFFIX = "])";
 
49
    
 
50
    /**
 
51
     * Create a JGDIPrincipal with a username.
 
52
     *
 
53
     * <p>
 
54
     *
 
55
     * @param username the username for this user.
 
56
     *
 
57
     * @param sessionId the id of the session
 
58
     * @exception NullPointerException if the <code>name</code>
 
59
     *                  is <code>null</code>.
 
60
     */
 
61
    public JGDIPrincipal(String username, long sessionId) {
 
62
        if (username == null) {
 
63
            throw new NullPointerException("username must not be null");
 
64
        }
 
65
        this.username = username;
 
66
        this.sessionId = sessionId;
 
67
        
 
68
        StringBuilder sb = new StringBuilder();
 
69
        sb.append(username);
 
70
        sb.append(SESSION_ID_PREFIX);
 
71
        sb.append(sessionId);
 
72
        sb.append(SESSION_ID_SUFFIX);
 
73
        this.name = sb.toString();
 
74
    }
 
75
 
 
76
    /**
 
77
     * Return the username for this <code>JGDIPrincipal</code>.
 
78
     *
 
79
     * <p>
 
80
     *
 
81
     * @return the username for this <code>JGDIPrincipal</code>
 
82
     */
 
83
    public String getName() {
 
84
        return name;
 
85
    }
 
86
 
 
87
    /**
 
88
     * Return a string representation of this <code>JGDIPrincipal</code>.
 
89
     *
 
90
     * <p>
 
91
     *
 
92
     * @return a string representation of this <code>JGDIPrincipal</code>.
 
93
     */
 
94
    @Override
 
95
    public String toString() {
 
96
        return String.format("JGDIPrincipal: %s", name);
 
97
    }
 
98
 
 
99
    /**
 
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.
 
104
     *
 
105
     * <p>
 
106
     *
 
107
     * @param o Object to be compared for equality with this
 
108
     *          <code>JGDIPrincipal</code>.
 
109
     *
 
110
     * @return true if the specified Object is equal equal to this
 
111
     *          <code>JGDIPrincipal</code>.
 
112
     */
 
113
    @Override
 
114
    public boolean equals(Object o) {
 
115
        if (o == null) {
 
116
            return false;
 
117
        }
 
118
 
 
119
        if (this == o) {
 
120
            return true;
 
121
        }
 
122
 
 
123
        if (!(o instanceof JGDIPrincipal)) {
 
124
            return false;
 
125
        }
 
126
        JGDIPrincipal that = (JGDIPrincipal) o;
 
127
 
 
128
        if (this.getName().equals(that.getName())) {
 
129
            return true;
 
130
        }
 
131
        return false;
 
132
    }
 
133
 
 
134
    /**
 
135
     * Return a hash code for this <code>JGDIPrincipal</code>.
 
136
     *
 
137
     * <p>
 
138
     *
 
139
     * @return a hash code for this <code>JGDIPrincipal</code>.
 
140
     */
 
141
    @Override
 
142
    public int hashCode() {
 
143
        return name.hashCode();
 
144
    }
 
145
 
 
146
    /**
 
147
     * Get the session id
 
148
     * @return the session id
 
149
     */
 
150
    public long getSessionId() {
 
151
        return sessionId;
 
152
    }
 
153
 
 
154
    /**
 
155
     * Get the username
 
156
     * @return the username
 
157
     */
 
158
    public String getUsername() {
 
159
        return username;
 
160
    }
 
161
    
 
162
}