From 8ae1b376fee5786345f8a482fa572ec828019a08 Mon Sep 17 00:00:00 2001 From: Justin Richer Date: Tue, 28 Aug 2012 12:54:25 -0400 Subject: [PATCH] updated whitelist service and repository --- .../repository/WhitelistedSiteRepository.java | 16 ++++++++-------- .../service/WhitelistedSiteService.java | 18 ++++++++---------- .../impl/JpaWhitelistedSiteRepository.java | 17 +++++++---------- .../impl/WhitelistedSiteServiceImpl.java | 19 +++++++++++-------- .../openid/connect/web/WhitelistApi.java | 4 ++-- 5 files changed, 36 insertions(+), 38 deletions(-) diff --git a/openid-connect-common/src/main/java/org/mitre/openid/connect/repository/WhitelistedSiteRepository.java b/openid-connect-common/src/main/java/org/mitre/openid/connect/repository/WhitelistedSiteRepository.java index 4b5556286..61d97e20c 100644 --- a/openid-connect-common/src/main/java/org/mitre/openid/connect/repository/WhitelistedSiteRepository.java +++ b/openid-connect-common/src/main/java/org/mitre/openid/connect/repository/WhitelistedSiteRepository.java @@ -67,14 +67,6 @@ public interface WhitelistedSiteRepository { */ public void remove(WhitelistedSite whitelistedSite); - /** - * Removes an WhitelistedSite from the repository - * - * @param id - * the id of the IdToken to remove - */ - public void removeById(Long id); - /** * Persists a WhitelistedSite * @@ -83,4 +75,12 @@ public interface WhitelistedSiteRepository { */ public WhitelistedSite save(WhitelistedSite whiteListedSite); + /** + * Persist changes to a whitelistedSite. The ID of oldWhitelistedSite is retained. + * @param oldWhitelistedSite + * @param whitelistedSite + * @return + */ + public WhitelistedSite update(WhitelistedSite oldWhitelistedSite, WhitelistedSite whitelistedSite); + } diff --git a/openid-connect-common/src/main/java/org/mitre/openid/connect/service/WhitelistedSiteService.java b/openid-connect-common/src/main/java/org/mitre/openid/connect/service/WhitelistedSiteService.java index 377001eb1..dccfd439c 100644 --- a/openid-connect-common/src/main/java/org/mitre/openid/connect/service/WhitelistedSiteService.java +++ b/openid-connect-common/src/main/java/org/mitre/openid/connect/service/WhitelistedSiteService.java @@ -68,19 +68,17 @@ public interface WhitelistedSiteService { public void remove(WhitelistedSite whitelistedSite); /** - * Removes an WhitelistedSite from the repository - * - * @param id - * the id of the WhitelistedSite to remove - */ - public void removeById(Long id); - - /** - * Persists a WhitelistedSite + * Persists a new WhitelistedSite * * @param whitelistedSite * the WhitelistedSite to be saved * @return */ - public WhitelistedSite save(WhitelistedSite whitelistedSite); + public WhitelistedSite saveNew(WhitelistedSite whitelistedSite); + + /** + * Updates an existing whitelisted site + */ + public WhitelistedSite update(WhitelistedSite oldWhitelistedSite, WhitelistedSite whitelistedSite); + } diff --git a/openid-connect-server/src/main/java/org/mitre/openid/connect/repository/impl/JpaWhitelistedSiteRepository.java b/openid-connect-server/src/main/java/org/mitre/openid/connect/repository/impl/JpaWhitelistedSiteRepository.java index 4a47688da..6115248c5 100644 --- a/openid-connect-server/src/main/java/org/mitre/openid/connect/repository/impl/JpaWhitelistedSiteRepository.java +++ b/openid-connect-server/src/main/java/org/mitre/openid/connect/repository/impl/JpaWhitelistedSiteRepository.java @@ -44,8 +44,7 @@ public class JpaWhitelistedSiteRepository implements WhitelistedSiteRepository { @Override @Transactional public Collection getAll() { - TypedQuery query = manager.createNamedQuery( - "WhitelistedSite.getAll", WhitelistedSite.class); + TypedQuery query = manager.createNamedQuery("WhitelistedSite.getAll", WhitelistedSite.class); return query.getResultList(); } @@ -68,20 +67,18 @@ public class JpaWhitelistedSiteRepository implements WhitelistedSiteRepository { } } - @Override - @Transactional - public void removeById(Long id) { - WhitelistedSite found = getById(id); - - manager.remove(found); - } - @Override @Transactional public WhitelistedSite save(WhitelistedSite whiteListedSite) { return saveOrUpdate(whiteListedSite.getId(), manager, whiteListedSite); } + @Override + @Transactional + public WhitelistedSite update(WhitelistedSite oldWhitelistedSite, WhitelistedSite whitelistedSite) { + return saveOrUpdate(oldWhitelistedSite.getId(), manager, whitelistedSite); + } + @Override @Transactional public WhitelistedSite getByClientId(String clientId) { diff --git a/openid-connect-server/src/main/java/org/mitre/openid/connect/service/impl/WhitelistedSiteServiceImpl.java b/openid-connect-server/src/main/java/org/mitre/openid/connect/service/impl/WhitelistedSiteServiceImpl.java index 7b6da48dd..64241d01e 100644 --- a/openid-connect-server/src/main/java/org/mitre/openid/connect/service/impl/WhitelistedSiteServiceImpl.java +++ b/openid-connect-server/src/main/java/org/mitre/openid/connect/service/impl/WhitelistedSiteServiceImpl.java @@ -64,15 +64,10 @@ public class WhitelistedSiteServiceImpl implements WhitelistedSiteService { } @Override - public void removeById(Long id) { - WhitelistedSite w = repository.getById(id); - if (w != null) { - repository.remove(w); + public WhitelistedSite saveNew(WhitelistedSite whitelistedSite) { + if (whitelistedSite.getId() != null) { + throw new IllegalArgumentException("A new whitelisted site cannot be created with an id value already set: " + whitelistedSite.getId()); } - } - - @Override - public WhitelistedSite save(WhitelistedSite whitelistedSite) { return repository.save(whitelistedSite); } @@ -91,4 +86,12 @@ public class WhitelistedSiteServiceImpl implements WhitelistedSiteService { return repository.getByCreator(creatorId); } + @Override + public WhitelistedSite update(WhitelistedSite oldWhitelistedSite, WhitelistedSite whitelistedSite) { + if (oldWhitelistedSite == null || whitelistedSite == null) { + throw new IllegalArgumentException("Neither the old or new sites may be null"); + } + return repository.update(oldWhitelistedSite, whitelistedSite); + } + } diff --git a/openid-connect-server/src/main/java/org/mitre/openid/connect/web/WhitelistApi.java b/openid-connect-server/src/main/java/org/mitre/openid/connect/web/WhitelistApi.java index 5caa331be..e845a7aa1 100644 --- a/openid-connect-server/src/main/java/org/mitre/openid/connect/web/WhitelistApi.java +++ b/openid-connect-server/src/main/java/org/mitre/openid/connect/web/WhitelistApi.java @@ -69,7 +69,7 @@ public class WhitelistApi { // save the id of the person who created this whitelist.setCreatorUserId(p.getName()); - WhitelistedSite newWhitelist = whitelistService.save(whitelist); + WhitelistedSite newWhitelist = whitelistService.saveNew(whitelist); m.put("entity", newWhitelist); @@ -93,7 +93,7 @@ public class WhitelistApi { // TODO: throw new "entity not found" } - WhitelistedSite newWhitelist = whitelistService.save(whitelist); + WhitelistedSite newWhitelist = whitelistService.update(oldWhitelist, whitelist); m.put("entity", newWhitelist);