summaryrefslogtreecommitdiffstats
path: root/gerrit-server/src/main/java/com/google/gerrit/server/auth/AuthUser.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/server/auth/AuthUser.java')
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/auth/AuthUser.java113
1 files changed, 113 insertions, 0 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/auth/AuthUser.java b/gerrit-server/src/main/java/com/google/gerrit/server/auth/AuthUser.java
new file mode 100644
index 0000000000..7d08173321
--- /dev/null
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/auth/AuthUser.java
@@ -0,0 +1,113 @@
+// Copyright (C) 2012 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.gerrit.server.auth;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import javax.annotation.Nullable;
+
+/**
+ * An authenticated user as specified by the AuthBackend.
+ */
+public class AuthUser {
+
+ /**
+ * Globally unique identifier for the user.
+ */
+ public final static class UUID {
+ private final String uuid;
+
+ /**
+ * A new unique identifier.
+ *
+ * @param uuid the unique identifier.
+ */
+ public UUID(String uuid) {
+ this.uuid = checkNotNull(uuid);
+ }
+
+ /** @return the globally unique identifier. */
+ public String get() {
+ return uuid;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof UUID) {
+ return get().equals(((UUID) obj).get());
+ }
+ return false;
+ }
+
+ @Override
+ public int hashCode() {
+ return get().hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return String.format("AuthUser.UUID[%s]", get());
+ }
+ }
+
+ private final UUID uuid;
+ private final String username;
+
+ /**
+ * An authenticated user.
+ *
+ * @param uuid the globally unique ID.
+ * @param username the name of the authenticated user.
+ */
+ public AuthUser(UUID uuid, @Nullable String username) {
+ this.uuid = checkNotNull(uuid);
+ this.username = username;
+ }
+
+ /** @return the globally unique identifier. */
+ public final UUID getUUID() {
+ return uuid;
+ }
+
+ /** @return the backend specific user name, or null if one does not exist. */
+ @Nullable
+ public final String getUsername() {
+ return username;
+ }
+
+ /** @return {@code true} if {@link #getUsername()} is not null. */
+ public final boolean hasUsername() {
+ return getUsername() != null;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof AuthUser) {
+ return getUUID().equals(((AuthUser) obj).getUUID());
+ }
+ return false;
+ }
+
+ @Override
+ public int hashCode() {
+ return getUUID().hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return String.format("AuthUser[uuid=%s, username=%s]", getUUID(),
+ getUsername());
+ }
+}