From b462d6dd96528e4fbc6f0a258878cd976fb0239c Mon Sep 17 00:00:00 2001 From: Justin Richer Date: Tue, 28 Aug 2012 13:00:26 -0400 Subject: [PATCH] added empty http code view --- .../openid/connect/view/HttpCodeView.java | 34 +++++++++++++++ .../openid/connect/web/WhitelistApi.java | 41 ++++++++++--------- 2 files changed, 56 insertions(+), 19 deletions(-) create mode 100644 openid-connect-server/src/main/java/org/mitre/openid/connect/view/HttpCodeView.java diff --git a/openid-connect-server/src/main/java/org/mitre/openid/connect/view/HttpCodeView.java b/openid-connect-server/src/main/java/org/mitre/openid/connect/view/HttpCodeView.java new file mode 100644 index 000000000..47a926cff --- /dev/null +++ b/openid-connect-server/src/main/java/org/mitre/openid/connect/view/HttpCodeView.java @@ -0,0 +1,34 @@ +/** + * + */ +package org.mitre.openid.connect.view; + +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.view.AbstractView; + +/** + * An empty view that simply returns an HTTP code set in the model + * @author jricher + * + */ +@Component("httpCodeView") +public class HttpCodeView extends AbstractView { + + @Override + protected void renderMergedOutputModel(Map model, HttpServletRequest request, HttpServletResponse response) { + HttpStatus code = (HttpStatus) model.get("code"); + if (code == null) { + code = HttpStatus.OK; // default to 200 + } + + response.setStatus(code.value()); + + } + +} 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 e845a7aa1..5a6ce331d 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 @@ -10,6 +10,7 @@ import org.mitre.oauth2.model.ClientDetailsEntity; import org.mitre.openid.connect.model.WhitelistedSite; import org.mitre.openid.connect.service.WhitelistedSiteService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -90,15 +91,16 @@ public class WhitelistApi { WhitelistedSite oldWhitelist = whitelistService.getById(id); if (oldWhitelist == null) { - // TODO: throw new "entity not found" + m.put("code", HttpStatus.NOT_FOUND); + return "httpCodeView"; + } else { + + WhitelistedSite newWhitelist = whitelistService.update(oldWhitelist, whitelist); + + m.put("entity", newWhitelist); + + return "jsonEntityView"; } - - WhitelistedSite newWhitelist = whitelistService.update(oldWhitelist, whitelist); - - m.put("entity", newWhitelist); - - return "jsonEntityView"; - } /** @@ -110,13 +112,12 @@ public class WhitelistApi { WhitelistedSite whitelist = whitelistService.getById(id); if (whitelist == null) { - // TODO: throw new "entity not found" - } + m.put("code", HttpStatus.NOT_FOUND); + } else { + whitelistService.remove(whitelist); + } - whitelistService.remove(whitelist); - - // TODO: not really an entity view, more of an empty view w/code - return "jsonEntityView"; + return "httpCodeView"; } /** @@ -126,12 +127,14 @@ public class WhitelistApi { public String getWhitelistedSite(@PathVariable("id") Long id, ModelMap m) { WhitelistedSite whitelist = whitelistService.getById(id); if (whitelist == null) { - // TODO: throw new "entity not found" + m.put("code", HttpStatus.NOT_FOUND); + return "httpCodeView"; + } else { + + m.put("entity", whitelist); + + return "jsonEntityView"; } - m.put("entity", whitelist); - - return "jsonEntityView"; - } }