Skip to content

Commit 756c34b

Browse files
committed
OAuth2AccessTokenResponse.Builder.expiresIn works after withResponse
Closes gh-8702
1 parent 3c2a97e commit 756c34b

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/endpoint/OAuth2AccessTokenResponse.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ public Builder tokenType(OAuth2AccessToken.TokenType tokenType) {
140140
*/
141141
public Builder expiresIn(long expiresIn) {
142142
this.expiresIn = expiresIn;
143+
this.expiresAt = null;
143144
return this;
144145
}
145146

oauth2/oauth2-core/src/test/java/org/springframework/security/oauth2/core/endpoint/OAuth2AccessTokenResponseTests.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,4 +153,22 @@ public void buildWhenResponseAndRefreshNullThenRefreshNull() {
153153

154154
assertThat(withResponse.getRefreshToken()).isNull();
155155
}
156+
157+
@Test
158+
public void buildWhenResponseThenChangeExpiresInThenExpiresAtMatchIssueAtPlusExpiresIn() {
159+
long originalExpiresIn = 10;
160+
OAuth2AccessTokenResponse tokenResponse = OAuth2AccessTokenResponse
161+
.withToken(TOKEN_VALUE)
162+
.tokenType(OAuth2AccessToken.TokenType.BEARER)
163+
.expiresIn(originalExpiresIn)
164+
.build();
165+
166+
long alteredExpiresIn = 30;
167+
OAuth2AccessTokenResponse withResponse = OAuth2AccessTokenResponse.withResponse(tokenResponse)
168+
.expiresIn(alteredExpiresIn)
169+
.build();
170+
171+
assertThat(withResponse.getAccessToken().getExpiresAt()).isEqualTo(
172+
withResponse.getAccessToken().getIssuedAt().plusSeconds(alteredExpiresIn));
173+
}
156174
}

0 commit comments

Comments
 (0)