Skip to content

Commit 25e30cd

Browse files
EFRS-1286: Fixed token expiration calculation
1 parent bb7c077 commit 25e30cd

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

java/common/src/main/java/com/exadel/frs/commonservice/system/liquibase/customchange/SetOAuthTokenExpirationCustomChange.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package com.exadel.frs.commonservice.system.liquibase.customchange;
22

3+
import static java.time.ZoneOffset.UTC;
4+
import static java.util.Date.from;
35
import java.sql.Date;
46
import java.sql.PreparedStatement;
57
import java.sql.SQLException;
8+
import java.time.Instant;
69
import liquibase.change.custom.CustomTaskChange;
710
import liquibase.database.Database;
811
import liquibase.database.jvm.JdbcConnection;
@@ -26,9 +29,9 @@ public class SetOAuthTokenExpirationCustomChange implements CustomTaskChange {
2629
private static final String SET_REFRESH_TOKEN_EXPIRATION_SQL = "UPDATE oauth_refresh_token SET expiration = ? WHERE token_id IN (SELECT refresh_token FROM oauth_access_token WHERE client_id = ?)";
2730

2831
private String clientId;
29-
private Integer accessTokenValidity;
30-
private Integer refreshTokenValidity;
3132
private String authorizedGrantTypes;
33+
private int accessTokenValidity;
34+
private int refreshTokenValidity;
3235

3336
@Override
3437
public void execute(final Database database) throws CustomChangeException {
@@ -72,18 +75,19 @@ private void setRefreshTokenExpiration(final JdbcConnection connection)
7275
);
7376
}
7477

75-
private int setTokenExpiration(final JdbcConnection connection, final String sql, final long tokenValidity)
78+
private int setTokenExpiration(final JdbcConnection connection, final String sql, final int tokenValidity)
7679
throws DatabaseException, SQLException {
7780
try (PreparedStatement statement = connection.prepareStatement(sql)) {
78-
Date expiration = calculateExpiration(tokenValidity);
81+
Date expiration = getExpiration(tokenValidity);
7982
statement.setDate(1, expiration);
8083
statement.setString(2, clientId);
8184
return statement.executeUpdate();
8285
}
8386
}
8487

85-
private Date calculateExpiration(final long validity) {
86-
return new Date((validity - System.currentTimeMillis()) / 1000L);
88+
private Date getExpiration(final int validity) {
89+
Instant expiration = Instant.now().plusSeconds(validity).atOffset(UTC).toInstant();
90+
return new Date(from(expiration).getTime());
8791
}
8892

8993
@Override

0 commit comments

Comments
 (0)