jaliss/securesocial — Issue #13: Google and Yahoo auth not working with https callback url
Author: sussegaduss
Created: 2011-12-21 16:32:50+00:00
State: open

When i try to make an authentication with google or yahoo providers using as callbackurl https://www.mydomain.com/auth/google i get the following error:

@68ncimf3o
Error authenticating user

No route found
No route able to invoke action https://www.mydomain.com/auth/google with arguments {} was found.

play.exceptions.NoRouteFoundException: No route found
at play.mvc.Router.reverse(Router.java:534)
at play.mvc.Router.reverse(Router.java:313)
at play.libs.OpenID.verify(OpenID.java:138)
at securesocial.provider.OpenIDProvider.doAuth(OpenIDProvider.java:97)
at securesocial.provider.OpenIDOAuthHybridProvider.doAuth(OpenIDOAuthHybridProvider.java:85)
at securesocial.provider.IdentityProvider.authenticate(IdentityProvider.java:67)
at controllers.securesocial.SecureSocial.authenticate(SecureSocial.java:189)
at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:546)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:500)
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:476)
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:471)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:159)
at Invocation.HTTP Request(Play!)

I found out that OpenIdProvider class from secureSocial module, on method getFullUrl() is using OpenID.java.
On line 138 of OpenID.java i discovered that this line:

if (returnAction != null && returnAction.startsWith("http://")) {
url += "&openid.return_to=" + URLEncoder.encode(returnAction, "utf8");
} else {
line 168:::: url += "&openid.return_to=" + URLEncoder.encode(Request.current().getBase() + Router.reverse(returnAction), "utf8");
}

is causing the error.. it seems like Router.reverse is causing this error.

im using play 1.2.3

is it possible to use the module with https when i use hibrid providers? can anyone help me with it?