From 9e3797acc740c0be2318219cc5c134bd021cf44f Mon Sep 17 00:00:00 2001 From: Galina Kovbasenko Date: Mon, 20 Feb 2017 18:47:02 +0200 Subject: [PATCH 1/3] fixed serialisation issues for the LinkedIn --- .../providers/oauth1/OAuth1AuthProvider.java | 84 ++++++++++++++++--- 1 file changed, 72 insertions(+), 12 deletions(-) diff --git a/code/app/com/feth/play/module/pa/providers/oauth1/OAuth1AuthProvider.java b/code/app/com/feth/play/module/pa/providers/oauth1/OAuth1AuthProvider.java index bfb3e311..e1b1ebd5 100644 --- a/code/app/com/feth/play/module/pa/providers/oauth1/OAuth1AuthProvider.java +++ b/code/app/com/feth/play/module/pa/providers/oauth1/OAuth1AuthProvider.java @@ -27,11 +27,16 @@ import com.feth.play.module.pa.user.AuthUserIdentity; public abstract class OAuth1AuthProvider - extends ExternalAuthProvider { + extends ExternalAuthProvider implements Serializable { private static final String CACHE_TOKEN = "pa.oauth1.rtoken"; + private static final long serialVersionUID = 7234050973334652723L; - public OAuth1AuthProvider(final Application app) { + public OAuth1AuthProvider() { + super(null); + } + + public OAuth1AuthProvider(final Application app) { super(app); } @@ -66,17 +71,62 @@ public static abstract class Constants { public static final String OAUTH_ACCESS_DENIED = "access_denied"; } - public static class SerializableRequestToken extends RequestToken implements Serializable { - private static final long serialVersionUID = 1L; + public static class DefaultNonSerializableRequestToken extends RequestToken { - public SerializableRequestToken() { - super(null, null); - } + public DefaultNonSerializableRequestToken() { + super(null, null); + } + + public DefaultNonSerializableRequestToken(String token, String secret) { + super(token, secret); + } + + } + + public static class SerializableRequestToken extends DefaultNonSerializableRequestToken implements Serializable { + + private static final long serialVersionUID = 7258408812687395069L; + + public String token; + + public String secret; + + public SerializableRequestToken() { + super(); + } + + public SerializableRequestToken(String token, String secret) { + super(token, secret); + this.token = token; + this.secret = secret; + } public SerializableRequestToken(RequestToken source) { - super(source.token, source.secret); + this(source.token, source.secret); } - } + + public RequestToken getRequestToken() { + return new RequestToken(token, secret); + } + + public String getToken() { + return token; + } + + public void setToken(String token) { + super.token = token; + this.token = token; + } + + public String getSecret() { + return secret; + } + + public void setSecret(String secret) { + super.secret = secret; + this.secret = secret; + } + } protected void checkError(Request request) throws AuthException{ final String error = request.getQueryString(Constants.OAUTH_PROBLEM); @@ -119,12 +169,22 @@ public Object authenticate(final Context context, final Object payload) if (uri.contains(Constants.OAUTH_VERIFIER)) { - final RequestToken rtoken = (RequestToken) PlayAuthenticate - .removeFromCache(context.session(), CACHE_TOKEN); + if (Logger.isDebugEnabled()) { + Logger.debug("Retrieving token from the cache...."); + } + + final SerializableRequestToken rtoken = PlayAuthenticate + .removeFromCache(context.session(), CACHE_TOKEN); + + if (Logger.isDebugEnabled()) { + Logger.debug("Retrieved token from the cache: source" + + rtoken.getToken() + ", secret " + rtoken.getSecret()); + } + final String verifier = request.getQueryString(Constants.OAUTH_VERIFIER); try { final RequestToken response = service - .retrieveAccessToken(rtoken, verifier); + .retrieveAccessToken(rtoken.getRequestToken(), verifier); final I i = buildInfo(response); return transform(i); } catch (RuntimeException ex) { From d9bc21480e3570be4b4502df8e03c0ec4afe85e1 Mon Sep 17 00:00:00 2001 From: Galina Kovbasenko Date: Mon, 20 Feb 2017 18:51:31 +0200 Subject: [PATCH 2/3] fixed serialisation issues for the LinkedIn --- .../module/pa/providers/oauth1/OAuth1AuthProvider.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/code/app/com/feth/play/module/pa/providers/oauth1/OAuth1AuthProvider.java b/code/app/com/feth/play/module/pa/providers/oauth1/OAuth1AuthProvider.java index e1b1ebd5..3c52d32d 100644 --- a/code/app/com/feth/play/module/pa/providers/oauth1/OAuth1AuthProvider.java +++ b/code/app/com/feth/play/module/pa/providers/oauth1/OAuth1AuthProvider.java @@ -27,14 +27,9 @@ import com.feth.play.module.pa.user.AuthUserIdentity; public abstract class OAuth1AuthProvider - extends ExternalAuthProvider implements Serializable { + extends ExternalAuthProvider { private static final String CACHE_TOKEN = "pa.oauth1.rtoken"; - private static final long serialVersionUID = 7234050973334652723L; - - public OAuth1AuthProvider() { - super(null); - } public OAuth1AuthProvider(final Application app) { super(app); From 67fb471534bcf1f1353fa85680e5f5a3d0ed621d Mon Sep 17 00:00:00 2001 From: Galina Kovbasenko Date: Tue, 21 Feb 2017 11:49:31 +0200 Subject: [PATCH 3/3] remove token logging --- .../play/module/pa/providers/oauth1/OAuth1AuthProvider.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/code/app/com/feth/play/module/pa/providers/oauth1/OAuth1AuthProvider.java b/code/app/com/feth/play/module/pa/providers/oauth1/OAuth1AuthProvider.java index 3c52d32d..dc7f2680 100644 --- a/code/app/com/feth/play/module/pa/providers/oauth1/OAuth1AuthProvider.java +++ b/code/app/com/feth/play/module/pa/providers/oauth1/OAuth1AuthProvider.java @@ -170,11 +170,6 @@ public Object authenticate(final Context context, final Object payload) final SerializableRequestToken rtoken = PlayAuthenticate .removeFromCache(context.session(), CACHE_TOKEN); - - if (Logger.isDebugEnabled()) { - Logger.debug("Retrieved token from the cache: source" - + rtoken.getToken() + ", secret " + rtoken.getSecret()); - } final String verifier = request.getQueryString(Constants.OAUTH_VERIFIER); try {