comparison src/main/java/de/mpiwg/itgroup/annotations/restlet/AnnotatorResourceImpl.java @ 89:247cbbb385de

improved logging.
author casties
date Wed, 04 Feb 2015 19:37:02 +0100
parents b406507a953d
children 475ab3d32630
comparison
equal deleted inserted replaced
88:b406507a953d 89:247cbbb385de
70 * @author dwinter, casties 70 * @author dwinter, casties
71 * 71 *
72 */ 72 */
73 public abstract class AnnotatorResourceImpl extends ServerResource { 73 public abstract class AnnotatorResourceImpl extends ServerResource {
74 74
75 protected static Logger logger = Logger.getLogger(AnnotatorResourceImpl.class.toString()); 75 protected static Logger logger = Logger.getLogger(AnnotatorResourceImpl.class.getCanonicalName());
76 76
77 private AnnotationStore store; 77 private AnnotationStore store;
78 78
79 protected String getAllowedMethodsForHeader() { 79 protected String getAllowedMethodsForHeader() {
80 return "OPTIONS,GET,POST"; 80 return "OPTIONS,GET,POST";
168 @SuppressWarnings("unchecked") 168 @SuppressWarnings("unchecked")
169 Series<Header> requestHeaders = (Series<Header>) getRequest().getAttributes().get("org.restlet.http.headers"); 169 Series<Header> requestHeaders = (Series<Header>) getRequest().getAttributes().get("org.restlet.http.headers");
170 String authToken = requestHeaders.getFirstValue("x-annotator-auth-token", true); 170 String authToken = requestHeaders.getFirstValue("x-annotator-auth-token", true);
171 if (authToken == null) { 171 if (authToken == null) {
172 if (!((BaseRestlet) getApplication()).isAuthorizationMode()) { 172 if (!((BaseRestlet) getApplication()).isAuthorizationMode()) {
173 // no token, no-auth mode -> anonymous
173 return Person.getAnonymous(); 174 return Person.getAnonymous();
174 } 175 }
176 // no token, auth mode -> null
175 return null; 177 return null;
176 } 178 }
177 Person user = null;
178 try { 179 try {
179 // decode token first to get consumer key 180 // decode token first to get consumer key
180 JsonToken token = new JsonTokenParser(null, null).deserialize(authToken); 181 JsonToken token = new JsonTokenParser(null, null).deserialize(authToken);
181 String consumerKey = token.getParamAsPrimitive("consumerKey").getAsString(); 182 String consumerKey = token.getParamAsPrimitive("consumerKey").getAsString();
182 // get stored consumer secret for key 183 // get stored consumer secret for key
195 new JsonTokenParser(new SystemClock(), null, (Checker[]) null).verify(token, verifiers); 196 new JsonTokenParser(new SystemClock(), null, (Checker[]) null).verify(token, verifiers);
196 // create Person 197 // create Person
197 JsonObject payload = token.getPayloadAsJsonObject(); 198 JsonObject payload = token.getPayloadAsJsonObject();
198 // userId is mandatory 199 // userId is mandatory
199 String userId = payload.get("userId").getAsString(); 200 String userId = payload.get("userId").getAsString();
200 user = new Person(userId); 201 Person user = new Person(userId);
201 // displayName is optional 202 // displayName is optional
202 if (payload.has("displayName")) { 203 if (payload.has("displayName")) {
203 user.name = payload.get("displayName").getAsString(); 204 user.name = payload.get("displayName").getAsString();
204 } 205 }
205 // memberOf groups is optional 206 // memberOf groups is optional
209 for (JsonElement jgroup : jgroups) { 210 for (JsonElement jgroup : jgroups) {
210 groups.add(jgroup.getAsString()); 211 groups.add(jgroup.getAsString());
211 } 212 }
212 user.groups = groups; 213 user.groups = groups;
213 } 214 }
215 logger.fine("auth OK! user=" + user);
216 return user;
214 } catch (Exception e) { 217 } catch (Exception e) {
215 logger.warning("Error checking auth token: "+e.toString()); 218 logger.warning("Error checking auth token: "+e.toString());
216 return null; 219 }
217 } 220 return null;
218 // must be ok then
219 logger.fine("auth OK! user=" + user);
220 return user;
221 } 221 }
222 222
223 /** 223 /**
224 * creates Annotator-JSON from an Annotation object. 224 * creates Annotator-JSON from an Annotation object.
225 * 225 *