001
002package io.vrap.rmf.base.client;
003
004import java.time.ZonedDateTime;
005import java.util.Optional;
006
007import com.fasterxml.jackson.annotation.JsonIgnore;
008import com.fasterxml.jackson.annotation.JsonProperty;
009
010public class AuthenticationToken {
011
012    @JsonProperty("access_token")
013    private String accessToken;
014
015    @JsonProperty("token_type")
016    private String tokenType;
017
018    @JsonProperty("expires_in")
019    private Long expiresIn;
020
021    @JsonProperty("scope")
022    private String scope;
023
024    @JsonProperty("refresh_token")
025    private String refreshToken;
026
027    @JsonIgnore
028    private ZonedDateTime expiresInZonedDateTime;
029
030    public AuthenticationToken() {
031    }
032
033    public String getAccessToken() {
034        return accessToken;
035    }
036
037    public void setAccessToken(final String accessToken) {
038        this.accessToken = accessToken;
039    }
040
041    public String getTokenType() {
042        return tokenType;
043    }
044
045    public void setTokenType(final String tokenType) {
046        this.tokenType = tokenType;
047    }
048
049    public Long getExpiresIn() {
050        return expiresIn;
051    }
052
053    public void setExpiresIn(final Long expiresIn) {
054        this.expiresInZonedDateTime = Optional.ofNullable(expiresIn)
055                .map(seconds -> ZonedDateTime.now().plusSeconds(seconds).minusMinutes(5))
056                .orElse(null);
057        this.expiresIn = expiresIn;
058    }
059
060    public String getScope() {
061        return scope;
062    }
063
064    public void setScope(final String scope) {
065        this.scope = scope;
066    }
067
068    @Deprecated
069    public String getRefresherToken() {
070        return refreshToken;
071    }
072
073    @Deprecated
074    public void setRefresherToken(final String refreshToken) {
075        this.refreshToken = refreshToken;
076    }
077
078    public String getRefreshToken() {
079        return refreshToken;
080    }
081
082    public void setRefreshToken(final String refreshToken) {
083        this.refreshToken = refreshToken;
084    }
085
086    public ZonedDateTime getExpiresInZonedDateTime() {
087        return expiresInZonedDateTime;
088    }
089
090    public boolean isExpired() {
091        return expiresInZonedDateTime != null && expiresInZonedDateTime.isBefore(ZonedDateTime.now());
092    }
093}