From 8876217baf67987b1feb99d054b2ee1420b6c176 Mon Sep 17 00:00:00 2001 From: Justin Richer Date: Tue, 28 Aug 2012 15:02:12 -0400 Subject: [PATCH] Added cleanups to client service --- ...faultOAuth2ClientDetailsEntityService.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/openid-connect-server/src/main/java/org/mitre/oauth2/service/impl/DefaultOAuth2ClientDetailsEntityService.java b/openid-connect-server/src/main/java/org/mitre/oauth2/service/impl/DefaultOAuth2ClientDetailsEntityService.java index 96ade2a51..359025502 100644 --- a/openid-connect-server/src/main/java/org/mitre/oauth2/service/impl/DefaultOAuth2ClientDetailsEntityService.java +++ b/openid-connect-server/src/main/java/org/mitre/oauth2/service/impl/DefaultOAuth2ClientDetailsEntityService.java @@ -26,6 +26,11 @@ import org.mitre.oauth2.model.ClientDetailsEntity; import org.mitre.oauth2.repository.OAuth2ClientRepository; import org.mitre.oauth2.repository.OAuth2TokenRepository; import org.mitre.oauth2.service.ClientDetailsEntityService; +import org.mitre.openid.connect.model.ApprovedSite; +import org.mitre.openid.connect.model.WhitelistedSite; +import org.mitre.openid.connect.repository.ApprovedSiteRepository; +import org.mitre.openid.connect.repository.WhitelistedSiteRepository; +import org.mitre.openid.connect.service.ApprovedSiteService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.oauth2.common.exceptions.InvalidClientException; import org.springframework.security.oauth2.common.exceptions.OAuth2Exception; @@ -46,6 +51,11 @@ public class DefaultOAuth2ClientDetailsEntityService implements ClientDetailsEnt @Autowired private OAuth2TokenRepository tokenRepository; + @Autowired + private ApprovedSiteRepository approvedSiteRepository; + + @Autowired + private WhitelistedSiteRepository whitelistedSiteRepository; public DefaultOAuth2ClientDetailsEntityService() { @@ -112,6 +122,20 @@ public class DefaultOAuth2ClientDetailsEntityService implements ClientDetailsEnt // clean out any tokens that this client had issued tokenRepository.clearTokensForClient(client); + // clean out any approved sites for this client + Collection approvedSites = approvedSiteRepository.getByClientId(client.getClientId()); + if (approvedSites != null) { + for (ApprovedSite approvedSite : approvedSites) { + approvedSiteRepository.remove(approvedSite); + } + } + + // clear out any whitelisted sites for this client + WhitelistedSite whitelistedSite = whitelistedSiteRepository.getByClientId(client.getClientId()); + if (whitelistedSite != null) { + whitelistedSiteRepository.remove(whitelistedSite); + } + // take care of the client itself clientRepository.deleteClient(client);