aboutsummaryrefslogtreecommitdiffstats
path: root/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/SecurityContext.java
diff options
context:
space:
mode:
authorMorten Tokle <mortent@oath.com>2019-04-04 15:00:51 +0200
committerMorten Tokle <mortent@oath.com>2019-04-04 15:00:51 +0200
commit37cacaa4b1944fc4faf814d19bd01225557aa7ab (patch)
tree23a160d3bb478d1de2580d8e478df59a6b981e1f /controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/SecurityContext.java
parent3e879db9b073b48a2c22c0737c3077915c6207ed (diff)
Introduce SecurityContext
Diffstat (limited to 'controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/SecurityContext.java')
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/SecurityContext.java48
1 files changed, 48 insertions, 0 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/SecurityContext.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/SecurityContext.java
new file mode 100644
index 00000000000..1ad98e761f5
--- /dev/null
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/SecurityContext.java
@@ -0,0 +1,48 @@
+// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.hosted.controller.api.role;
+
+import java.security.Principal;
+import java.util.Objects;
+
+public class SecurityContext {
+
+ public static final String ATTRIBUTE_NAME = SecurityContext.class.getName();
+
+ private final Principal principal;
+ private final RoleMembership roles;
+
+ public SecurityContext(Principal principal, RoleMembership roles) {
+ this.principal = principal;
+ this.roles = roles;
+ }
+
+ public Principal principal() {
+ return principal;
+ }
+
+ public RoleMembership roles() {
+ return roles;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ SecurityContext that = (SecurityContext) o;
+ return Objects.equals(principal, that.principal) &&
+ Objects.equals(roles, that.roles);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(principal, roles);
+ }
+
+ @Override
+ public String toString() {
+ return "SecurityContext{" +
+ "principal=" + principal +
+ ", roles=" + roles +
+ '}';
+ }
+}