Generating a new registration access token on read/update call and revoking the token issued earlier.pull/620/head
parent
199131ba77
commit
ed3e6a2814
|
@ -202,10 +202,8 @@ public class ClientDynamicRegistrationEndpoint {
|
||||||
|
|
||||||
if (client != null && client.getClientId().equals(auth.getOAuth2Request().getClientId())) {
|
if (client != null && client.getClientId().equals(auth.getOAuth2Request().getClientId())) {
|
||||||
|
|
||||||
|
//Get rid of the old token and issue a new token
|
||||||
// we return the token that we got in
|
OAuth2AccessTokenEntity token = rotateRegistrationToken(auth, client);
|
||||||
OAuth2AuthenticationDetails details = (OAuth2AuthenticationDetails) auth.getDetails();
|
|
||||||
OAuth2AccessTokenEntity token = tokenService.readAccessToken(details.getTokenValue());
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
RegisteredClient registered = new RegisteredClient(client, token.getValue(), config.getIssuer() + "register/" + UriUtils.encodePathSegment(client.getClientId(), "UTF-8"));
|
RegisteredClient registered = new RegisteredClient(client, token.getValue(), config.getIssuer() + "register/" + UriUtils.encodePathSegment(client.getClientId(), "UTF-8"));
|
||||||
|
@ -293,10 +291,8 @@ public class ClientDynamicRegistrationEndpoint {
|
||||||
// save the client
|
// save the client
|
||||||
ClientDetailsEntity savedClient = clientService.updateClient(oldClient, newClient);
|
ClientDetailsEntity savedClient = clientService.updateClient(oldClient, newClient);
|
||||||
|
|
||||||
// we return the token that we got in
|
//Get rid of the old token and issue a new token
|
||||||
// TODO: rotate this after some set amount of time
|
OAuth2AccessTokenEntity token = rotateRegistrationToken(auth, savedClient);
|
||||||
OAuth2AuthenticationDetails details = (OAuth2AuthenticationDetails) auth.getDetails();
|
|
||||||
OAuth2AccessTokenEntity token = tokenService.readAccessToken(details.getTokenValue());
|
|
||||||
|
|
||||||
RegisteredClient registered = new RegisteredClient(savedClient, token.getValue(), config.getIssuer() + "register/" + UriUtils.encodePathSegment(savedClient.getClientId(), "UTF-8"));
|
RegisteredClient registered = new RegisteredClient(savedClient, token.getValue(), config.getIssuer() + "register/" + UriUtils.encodePathSegment(savedClient.getClientId(), "UTF-8"));
|
||||||
|
|
||||||
|
@ -524,4 +520,14 @@ public class ClientDynamicRegistrationEndpoint {
|
||||||
return newClient;
|
return newClient;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private OAuth2AccessTokenEntity rotateRegistrationToken(OAuth2Authentication auth, ClientDetailsEntity client)
|
||||||
|
{
|
||||||
|
OAuth2AuthenticationDetails details = (OAuth2AuthenticationDetails) auth.getDetails();
|
||||||
|
OAuth2AccessTokenEntity token = tokenService.readAccessToken(details.getTokenValue());
|
||||||
|
tokenService.revokeAccessToken(token);
|
||||||
|
|
||||||
|
OAuth2AccessTokenEntity newToken = connectTokenService.createRegistrationAccessToken(client);
|
||||||
|
tokenService.saveAccessToken(newToken);
|
||||||
|
return newToken;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue