diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2022-04-27 09:53:50 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2022-04-27 09:57:51 +0200 |
commit | b0c1157a8c992bc45fb0431403c0a870323ef340 (patch) | |
tree | 7e9044d9a5b7fe303e70cce6b13b468e3babca05 /jdisc-security-filters/src/main/java/com/yahoo/jdisc/http/filter/security/misc/User.java | |
parent | e45cd30a0cf9e99be02af029dbb5c8517ba8ce4b (diff) |
Move User from controller-api to jdisc-security-filters
Diffstat (limited to 'jdisc-security-filters/src/main/java/com/yahoo/jdisc/http/filter/security/misc/User.java')
-rw-r--r-- | jdisc-security-filters/src/main/java/com/yahoo/jdisc/http/filter/security/misc/User.java | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/jdisc-security-filters/src/main/java/com/yahoo/jdisc/http/filter/security/misc/User.java b/jdisc-security-filters/src/main/java/com/yahoo/jdisc/http/filter/security/misc/User.java new file mode 100644 index 00000000000..1d5fea8a4c4 --- /dev/null +++ b/jdisc-security-filters/src/main/java/com/yahoo/jdisc/http/filter/security/misc/User.java @@ -0,0 +1,83 @@ +// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.jdisc.http.filter.security.misc; + +import java.time.LocalDate; +import java.util.Objects; + +/** + * @author smorgrav + */ +public class User { + + public static final String ATTRIBUTE_NAME = "vespa.user.attributes"; + public static final LocalDate NO_DATE = LocalDate.EPOCH; + + private final String email; + private final String name; + private final String nickname; + private final String picture; + private final boolean isVerified; + private final int loginCount; + private final LocalDate lastLogin; + + public User(String email, String name, String nickname, String picture) { + this.email = Objects.requireNonNull(email); + this.name = name; + this.nickname = nickname; + this.picture = picture; + this.isVerified = false; + this.loginCount = -1; + this.lastLogin = NO_DATE; + } + + public User(String email, String name, String nickname, String picture, boolean isVerified, int loginCount, LocalDate lastLogin) { + this.email = Objects.requireNonNull(email); + this.name = name; + this.nickname = nickname; + this.picture = picture; + this.isVerified = isVerified; + this.loginCount = loginCount; + this.lastLogin = Objects.requireNonNull(lastLogin); + } + + public String name() { + return name; + } + + public String email() { + return email; + } + + public String nickname() { + return nickname; + } + + public String picture() { + return picture; + } + + public LocalDate lastLogin() { return lastLogin; } + + public boolean isVerified() { return isVerified; } + + public int loginCount() { return loginCount; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + User user = (User) o; + return Objects.equals(name, user.name) && + Objects.equals(email, user.email) && + Objects.equals(nickname, user.nickname) && + Objects.equals(picture, user.picture) && + Objects.equals(lastLogin, user.lastLogin) && + loginCount == user.loginCount && + isVerified == user.isVerified; + } + + @Override + public int hashCode() { + return Objects.hash(name, email, nickname, picture, lastLogin, loginCount, isVerified); + } +} |