Introduce simple principal
authorMathieu Baudier <mbaudier@argeo.org>
Sat, 18 Feb 2012 18:41:01 +0000 (18:41 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Sat, 18 Feb 2012 18:41:01 +0000 (18:41 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@5097 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

basic/runtime/org.argeo.basic.nodeps/src/main/java/org/argeo/util/security/SimplePrincipal.java [new file with mode: 0644]

diff --git a/basic/runtime/org.argeo.basic.nodeps/src/main/java/org/argeo/util/security/SimplePrincipal.java b/basic/runtime/org.argeo.basic.nodeps/src/main/java/org/argeo/util/security/SimplePrincipal.java
new file mode 100644 (file)
index 0000000..c037a25
--- /dev/null
@@ -0,0 +1,43 @@
+package org.argeo.util.security;
+
+import java.security.Principal;
+
+import org.argeo.ArgeoException;
+
+/** Canonical implementation of a {@link Principal} */
+public class SimplePrincipal implements Principal {
+       private final String name;
+
+       public SimplePrincipal(String name) {
+               if (name == null)
+                       throw new ArgeoException("Principal name cannot be null");
+               this.name = name;
+       }
+
+       public String getName() {
+               return name;
+       }
+
+       @Override
+       public int hashCode() {
+               return name.hashCode();
+       }
+
+       @Override
+       public boolean equals(Object obj) {
+               if (obj == null)
+                       return false;
+               return name.equals(obj.toString());
+       }
+
+       @Override
+       protected Object clone() throws CloneNotSupportedException {
+               return new SimplePrincipal(name);
+       }
+
+       @Override
+       public String toString() {
+               return name;
+       }
+
+}