X-Git-Url: https://juplo.de/gitweb/?p=facebook-errors;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Ffacebook%2FSignedRequestAwareAuthorizationCodeAccessTokenProvider.java;h=5df98b719486a0198c9f95b2bc7b066179e983f9;hp=8d4c7ee7f93b3f4c69d6384c3fbb8b0715a7f9f5;hb=2dedc05085f743cc4f8c312b3aa0b7846f28d357;hpb=504b7c003be150f78b45d308bc29ba5242dbf568 diff --git a/src/main/java/de/juplo/facebook/SignedRequestAwareAuthorizationCodeAccessTokenProvider.java b/src/main/java/de/juplo/facebook/SignedRequestAwareAuthorizationCodeAccessTokenProvider.java index 8d4c7ee..5df98b7 100644 --- a/src/main/java/de/juplo/facebook/SignedRequestAwareAuthorizationCodeAccessTokenProvider.java +++ b/src/main/java/de/juplo/facebook/SignedRequestAwareAuthorizationCodeAccessTokenProvider.java @@ -142,34 +142,20 @@ public class SignedRequestAwareAuthorizationCodeAccessTokenProvider throw redirect; } - DefaultOAuth2AccessToken token = null; + /** + * Extract additional information and store it in the token + * See: + * https://developers.facebook.com/docs/reference/login/signed-request/ + * TODO: + * - Attribute "code" + */ + Map additionalInformation = new HashMap<>(); try { - String value = json.get("oauth_token").asText(); - if (value.isEmpty()) - { - log.error("field \"oauth_token\" is missing: {}", data); - throw redirect; - } - token = new DefaultOAuth2AccessToken(value); - token.setExpiration(new Date(json.get("expires").getLongValue()*1000L)); - - /** - * Extract additional information and store it in the token - * See: - * https://developers.facebook.com/docs/reference/login/signed-request/ - * TODO: - * - Attribute "code" - */ - Map additionalInformation = new HashMap<>(); additionalInformation.put( "issued_at", new Date(json.get("issued_at").getLongValue()*1000L) ); - additionalInformation.put( - "user_id", - json.get("user_id").asText() - ); Map user = new HashMap<>(); user.put( "country", @@ -199,6 +185,29 @@ public class SignedRequestAwareAuthorizationCodeAccessTokenProvider page.put("admin", json.get("page").get("admin").asBoolean()); additionalInformation.put("page", page); } + } + catch (NullPointerException e) + { + log.warn("expected additional data is missing: {}", data); + } + + DefaultOAuth2AccessToken token = null; + try + { + String value = json.get("oauth_token").asText(); + if (value.isEmpty()) + { + log.error("field \"oauth_token\" is missing: {}", data); + throw redirect; + } + token = new DefaultOAuth2AccessToken(value); + token.setExpiration(new Date(json.get("expires").getLongValue()*1000L)); + + additionalInformation.put( + "user_id", + json.get("user_id").asText() + ); + token.setAdditionalInformation(additionalInformation); } catch (NullPointerException e)