Removing "throws exception" from views. Addresses issue #70

pull/129/merge
Amanda Anganes 2012-07-31 12:28:46 -04:00
parent 5cf6359f7d
commit 3982561a5b
9 changed files with 153 additions and 68 deletions

View File

@ -15,16 +15,15 @@
******************************************************************************/ ******************************************************************************/
package org.mitre.oauth2.view; package org.mitre.oauth2.view;
import java.io.IOException;
import java.io.Writer; import java.io.Writer;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.text.DateFormat;
import java.util.Map; import java.util.Map;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.mitre.oauth2.model.OAuth2AccessTokenEntity; import org.mitre.oauth2.model.OAuth2AccessTokenEntity;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.validation.BeanPropertyBindingResult; import org.springframework.validation.BeanPropertyBindingResult;
import org.springframework.web.servlet.view.AbstractView; import org.springframework.web.servlet.view.AbstractView;
@ -42,7 +41,7 @@ import com.google.gson.JsonSerializer;
public class TokenIntrospection extends AbstractView { public class TokenIntrospection extends AbstractView {
@Override @Override
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception { protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) {
Gson gson = new GsonBuilder().setExclusionStrategies(new ExclusionStrategy() { Gson gson = new GsonBuilder().setExclusionStrategies(new ExclusionStrategy() {
@ -101,8 +100,11 @@ public class TokenIntrospection extends AbstractView {
response.setContentType("application/json"); response.setContentType("application/json");
Writer out = response.getWriter(); Writer out;
try {
out = response.getWriter();
Object obj = model.get("entity"); Object obj = model.get("entity");
if (obj == null) { if (obj == null) {
obj = model; obj = model;
@ -110,6 +112,13 @@ public class TokenIntrospection extends AbstractView {
gson.toJson(obj, out); gson.toJson(obj, out);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
} }

View File

@ -15,6 +15,7 @@
******************************************************************************/ ******************************************************************************/
package org.mitre.openid.connect.view; package org.mitre.openid.connect.view;
import java.io.IOException;
import java.util.Map; import java.util.Map;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@ -39,9 +40,7 @@ public class ExceptionAsJSONView extends AbstractView {
* javax.servlet.http.HttpServletResponse) * javax.servlet.http.HttpServletResponse)
*/ */
@Override @Override
protected void renderMergedOutputModel(Map<String, Object> model, protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest requesr, HttpServletResponse response) {
HttpServletRequest requesr, HttpServletResponse response)
throws Exception {
response.setContentType("application/json"); response.setContentType("application/json");
@ -53,7 +52,16 @@ public class ExceptionAsJSONView extends AbstractView {
jsonObject.addProperty("error_description", jsonObject.addProperty("error_description",
((Exception) ex).getMessage()); ((Exception) ex).getMessage());
try {
response.getWriter().write(jsonObject.toString()); response.getWriter().write(jsonObject.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
} }

View File

@ -5,6 +5,7 @@ package org.mitre.openid.connect.view;
*/ */
import java.io.IOException;
import java.io.Writer; import java.io.Writer;
import java.util.Map; import java.util.Map;
@ -19,14 +20,12 @@ import com.google.gson.FieldAttributes;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
public class JSONClientView extends AbstractView{ public class JSONClientView extends AbstractView {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.springframework.web.servlet.view.AbstractView#renderMergedOutputModel(java.util.Map, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) * @see org.springframework.web.servlet.view.AbstractView#renderMergedOutputModel(java.util.Map, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/ */
protected void renderMergedOutputModel(Map<String, Object> model, protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) {
HttpServletRequest request, HttpServletResponse response)
throws Exception {
Gson gson = new GsonBuilder() Gson gson = new GsonBuilder()
.setExclusionStrategies(new ExclusionStrategy() { .setExclusionStrategies(new ExclusionStrategy() {
@ -48,14 +47,23 @@ public class JSONClientView extends AbstractView{
response.setContentType("application/json"); response.setContentType("application/json");
Writer out = response.getWriter(); Writer out;
try {
out = response.getWriter();
Object obj = model.get("entity"); Object obj = model.get("entity");
if (obj == null) { if (obj == null) {
obj = model; obj = model;
} }
gson.toJson(obj, out); gson.toJson(obj, out);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} }

View File

@ -15,16 +15,15 @@
******************************************************************************/ ******************************************************************************/
package org.mitre.openid.connect.view; package org.mitre.openid.connect.view;
import java.io.IOException;
import java.io.Writer; import java.io.Writer;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.security.PublicKey;
import java.util.Map; import java.util.Map;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.mitre.jwt.model.ClaimSet; import org.mitre.jwt.model.ClaimSet;
import org.mitre.openid.connect.model.IdToken;
import org.springframework.validation.BeanPropertyBindingResult; import org.springframework.validation.BeanPropertyBindingResult;
import org.springframework.web.servlet.view.AbstractView; import org.springframework.web.servlet.view.AbstractView;
@ -34,7 +33,6 @@ import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement; import com.google.gson.JsonElement;
import com.google.gson.JsonNull; import com.google.gson.JsonNull;
import com.google.gson.JsonObject;
import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer; import com.google.gson.JsonSerializer;
@ -43,9 +41,7 @@ public class JSONIdTokenView extends AbstractView {
/* (non-Javadoc) /* (non-Javadoc)
* @see org.springframework.web.servlet.view.AbstractView#renderMergedOutputModel(java.util.Map, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) * @see org.springframework.web.servlet.view.AbstractView#renderMergedOutputModel(java.util.Map, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/ */
protected void renderMergedOutputModel(Map<String, Object> model, protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) {
HttpServletRequest request, HttpServletResponse response)
throws Exception {
Gson gson = new GsonBuilder() Gson gson = new GsonBuilder()
.setExclusionStrategies(new ExclusionStrategy() { .setExclusionStrategies(new ExclusionStrategy() {
@ -78,7 +74,12 @@ public class JSONIdTokenView extends AbstractView {
response.setContentType("application/json"); response.setContentType("application/json");
Writer out = response.getWriter();
Writer out;
try {
out = response.getWriter();
Object obj = model.get("entity"); Object obj = model.get("entity");
if (obj == null) { if (obj == null) {
@ -86,6 +87,14 @@ public class JSONIdTokenView extends AbstractView {
} }
gson.toJson(obj, out); gson.toJson(obj, out);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
} }

View File

@ -15,6 +15,7 @@
******************************************************************************/ ******************************************************************************/
package org.mitre.openid.connect.view; package org.mitre.openid.connect.view;
import java.io.IOException;
import java.io.Writer; import java.io.Writer;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -37,9 +38,7 @@ public class JSONUserInfoView extends AbstractView{
/* (non-Javadoc) /* (non-Javadoc)
* @see org.springframework.web.servlet.view.AbstractView#renderMergedOutputModel(java.util.Map, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) * @see org.springframework.web.servlet.view.AbstractView#renderMergedOutputModel(java.util.Map, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/ */
protected void renderMergedOutputModel(Map<String, Object> model, protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) {
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UserInfo userInfo = (UserInfo) model.get("userInfo"); UserInfo userInfo = (UserInfo) model.get("userInfo");
@ -64,11 +63,25 @@ public class JSONUserInfoView extends AbstractView{
}).create(); }).create();
response.setContentType("application/json"); response.setContentType("application/json");
Writer out = response.getWriter();
Writer out;
try {
out = response.getWriter();
gson.toJson(toJson(userInfo, scope), out); gson.toJson(toJson(userInfo, scope), out);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
private JsonObject toJson(UserInfo ui, Set<String> scope) { private JsonObject toJson(UserInfo ui, Set<String> scope) {
JsonObject obj = new JsonObject(); JsonObject obj = new JsonObject();
if (scope.contains("openid")) { if (scope.contains("openid")) {

View File

@ -18,11 +18,9 @@
*/ */
package org.mitre.openid.connect.view; package org.mitre.openid.connect.view;
import java.io.IOException;
import java.io.Writer; import java.io.Writer;
import java.lang.reflect.Type;
import java.math.BigInteger; import java.math.BigInteger;
import java.security.PublicKey;
import java.security.interfaces.ECPublicKey;
import java.security.interfaces.RSAPublicKey; import java.security.interfaces.RSAPublicKey;
import java.util.Map; import java.util.Map;
@ -35,16 +33,12 @@ import org.mitre.jwt.signer.impl.RsaSigner;
import org.springframework.validation.BeanPropertyBindingResult; import org.springframework.validation.BeanPropertyBindingResult;
import org.springframework.web.servlet.view.AbstractView; import org.springframework.web.servlet.view.AbstractView;
import com.google.common.collect.BiMap;
import com.google.gson.ExclusionStrategy; import com.google.gson.ExclusionStrategy;
import com.google.gson.FieldAttributes; import com.google.gson.FieldAttributes;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
import com.google.gson.JsonArray; import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
/** /**
* @author jricher * @author jricher
@ -53,7 +47,7 @@ import com.google.gson.JsonSerializer;
public class JwkKeyListView extends AbstractView { public class JwkKeyListView extends AbstractView {
@Override @Override
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception { protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) {
Gson gson = new GsonBuilder() Gson gson = new GsonBuilder()
.setExclusionStrategies(new ExclusionStrategy() { .setExclusionStrategies(new ExclusionStrategy() {
@ -74,10 +68,8 @@ public class JwkKeyListView extends AbstractView {
}) })
.create(); .create();
response.setContentType("application/json"); response.setContentType("application/json");
Writer out = response.getWriter();
//BiMap<String, PublicKey> keyMap = (BiMap<String, PublicKey>) model.get("keys"); //BiMap<String, PublicKey> keyMap = (BiMap<String, PublicKey>) model.get("keys");
Map<String, JwtSigner> signers = (Map<String, JwtSigner>) model.get("signers"); Map<String, JwtSigner> signers = (Map<String, JwtSigner>) model.get("signers");
@ -115,8 +107,20 @@ public class JwkKeyListView extends AbstractView {
} // TODO: deal with non-RSA key types } // TODO: deal with non-RSA key types
} }
Writer out;
try {
out = response.getWriter();
gson.toJson(obj, out); gson.toJson(obj, out);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
} }

View File

@ -15,6 +15,7 @@
******************************************************************************/ ******************************************************************************/
package org.mitre.openid.connect.view; package org.mitre.openid.connect.view;
import java.io.IOException;
import java.io.Writer; import java.io.Writer;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -38,9 +39,7 @@ public class POCOUserInfoView extends AbstractView{
/* (non-Javadoc) /* (non-Javadoc)
* @see org.springframework.web.servlet.view.AbstractView#renderMergedOutputModel(java.util.Map, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) * @see org.springframework.web.servlet.view.AbstractView#renderMergedOutputModel(java.util.Map, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/ */
protected void renderMergedOutputModel(Map<String, Object> model, protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) {
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UserInfo userInfo = (UserInfo) model.get("userInfo"); UserInfo userInfo = (UserInfo) model.get("userInfo");
@ -65,8 +64,21 @@ public class POCOUserInfoView extends AbstractView{
}).create(); }).create();
response.setContentType("application/json"); response.setContentType("application/json");
Writer out = response.getWriter();
Writer out;
try {
out = response.getWriter();
gson.toJson(toPoco(userInfo, scope), out); gson.toJson(toPoco(userInfo, scope), out);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
private JsonObject toPoco(UserInfo ui, Set<String> scope) { private JsonObject toPoco(UserInfo ui, Set<String> scope) {

View File

@ -15,6 +15,7 @@
******************************************************************************/ ******************************************************************************/
package org.mitre.swd.view; package org.mitre.swd.view;
import java.io.IOException;
import java.io.Writer; import java.io.Writer;
import java.util.Map; import java.util.Map;
@ -32,7 +33,7 @@ import com.google.gson.GsonBuilder;
public class JsonOpenIdConfigurationView extends AbstractView { public class JsonOpenIdConfigurationView extends AbstractView {
@Override @Override
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception { protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) {
Gson gson = new GsonBuilder().setExclusionStrategies(new ExclusionStrategy() { Gson gson = new GsonBuilder().setExclusionStrategies(new ExclusionStrategy() {
@Override @Override
@ -55,15 +56,24 @@ public class JsonOpenIdConfigurationView extends AbstractView {
response.setContentType("application/json"); response.setContentType("application/json");
Writer out = response.getWriter();
Object obj = model.get("entity"); Object obj = model.get("entity");
if (obj == null) { if (obj == null) {
obj = model; obj = model;
} }
Writer out;
try {
out = response.getWriter();
gson.toJson(obj, out); gson.toJson(obj, out);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }

View File

@ -18,6 +18,7 @@
*/ */
package org.mitre.swd.view; package org.mitre.swd.view;
import java.io.IOException;
import java.io.Writer; import java.io.Writer;
import java.util.Map; import java.util.Map;
@ -42,7 +43,7 @@ public class SwdResponse extends AbstractView {
* @see org.springframework.web.servlet.view.AbstractView#renderMergedOutputModel(java.util.Map, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) * @see org.springframework.web.servlet.view.AbstractView#renderMergedOutputModel(java.util.Map, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/ */
@Override @Override
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception { protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) {
Gson gson = new GsonBuilder().setExclusionStrategies(new ExclusionStrategy() { Gson gson = new GsonBuilder().setExclusionStrategies(new ExclusionStrategy() {
@Override @Override
@ -65,14 +66,25 @@ public class SwdResponse extends AbstractView {
response.setContentType("application/json"); response.setContentType("application/json");
Writer out = response.getWriter();
Object obj = model.get("entity"); Object obj = model.get("entity");
if (obj == null) { if (obj == null) {
obj = model; obj = model;
} }
Writer out;
try {
out = response.getWriter();
gson.toJson(obj, out); gson.toJson(obj, out);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
} }