com.capitalone.dashboard.model.ApiToken Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of core Show documentation
Show all versions of core Show documentation
Core package shared by API layer and Microservices
package com.capitalone.dashboard.model;
import com.google.common.hash.Hashing;
import org.springframework.data.mongodb.core.mapping.Document;
import java.nio.charset.StandardCharsets;
@Document(collection="apitoken")
public class ApiToken extends BaseModel {
static final String HASH_PREFIX = "sha512:";
private String apiUser;
private String apiKey;
private Long expirationDt;
public ApiToken(String apiUser, String apiKey, Long expirationDt) {
this.apiUser = apiUser;
this.apiKey = hash(apiKey);
this.expirationDt = expirationDt;
}
public String getApiUser() {
return apiUser;
}
public void setApiUser(String apiUser) {
this.apiUser = apiUser;
}
public String getApiKey() {
return apiKey;
}
public void setApiKey(String apiKey) {
this.apiKey = hash(apiKey);
}
public Long getExpirationDt() {
return expirationDt;
}
public void setExpirationDt(Long expirationDt) {
this.expirationDt = expirationDt;
}
static String hash(String apiKey) {
if (!apiKey.startsWith(HASH_PREFIX)) {
return HASH_PREFIX + Hashing.sha512().hashString(apiKey, StandardCharsets.UTF_8).toString();
}
return apiKey;
}
public boolean isHashed() {
return apiKey.startsWith(HASH_PREFIX);
}
public boolean checkApiKey(String apiKey) {
return hash(this.apiKey).equals(hash(apiKey));
}
@Override
public String toString() {
return "ApiToken [apiUser=" + apiUser + ", apiKey=" + apiKey + "]";
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy