All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.taboola.backstage.model.auth.Token Maven / Gradle / Ivy

package com.taboola.backstage.model.auth;

import java.util.Objects;

/**
 * Created by vladi
 * Date: 9/13/2017
 * Time: 11:31 PM
 * By Taboola
 */
public class Token {

    private static final int MILLISECONDS_IN_SINGLE_SECOND = 1000;
    
    private String accessToken;
    private String refreshToken;
    private String tokenType;
    private Integer expiresIn; //seconds
    private final Long creationTimestamp;

    public Token() {
        this.creationTimestamp = System.currentTimeMillis();
    }

    public String getAccessToken() {
        return accessToken;
    }

    public String getAccessTokenForHeader() {
        return "Bearer " + getAccessToken();
    }

    public void setAccessToken(String accessToken) {
        this.accessToken = accessToken;
    }

    public String getRefreshToken() {
        return refreshToken;
    }

    public void setRefreshToken(String refreshToken) {
        this.refreshToken = refreshToken;
    }

    public String getTokenType() {
        return tokenType;
    }

    public void setTokenType(String tokenType) {
        this.tokenType = tokenType;
    }

    public Integer getExpiresIn() {
        return expiresIn;
    }

    public void setExpiresIn(Integer expiresIn) {
        this.expiresIn = expiresIn;
    }

    public boolean isExpired() {
        Objects.requireNonNull(expiresIn, "Expires in is null");
        return System.currentTimeMillis() >= (creationTimestamp + (expiresIn * MILLISECONDS_IN_SINGLE_SECOND));
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Token token = (Token) o;
        return Objects.equals(accessToken, token.accessToken) &&
        Objects.equals(refreshToken, token.refreshToken) &&
        Objects.equals(tokenType, token.tokenType) &&
        Objects.equals(creationTimestamp, token.creationTimestamp) &&
        Objects.equals(expiresIn, token.expiresIn);
    }

    @Override
    public int hashCode() {
        return Objects.hash(accessToken, refreshToken, tokenType, expiresIn, creationTimestamp);
    }

    @Override
    public String toString() {
        return "Token{" +
        "accessToken='" + accessToken + '\'' +
        ", refreshToken='" + refreshToken + '\'' +
        ", tokenType='" + tokenType + '\'' +
        ", expiresIn=" + expiresIn +
        ", creationTimestamp=" + creationTimestamp +
        '}';
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy