RE: GAE + GWT + Restlet 2.0 M3 + challenge response is null on server side
Hello all, I've just tried with the current snapshot and it works for me. Could you try as well and keep us informed? Best regards, Thierry Boileau -- http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447dsMessageId=2535437
RE: GAE + GWT + Restlet 2.0 M3 + challenge response is null on server side
Hi Weimin, I've entered a bug report: Challenge response is null on server side (GWT + GAE) http://restlet.tigris.org/issues/show_bug.cgi?id=1060 We will try to reproduce and fix for 2.0 RC2. Best regards, Jerome Louvel -- Restlet ~ Founder and Technical Lead ~ http://www.restlet.org Noelios Technologies ~ http://www.noelios.com -Message d'origine- De : Weimin [mailto:wu_wei...@hotmail.com] Envoyé : dimanche 14 février 2010 07:43 À : discuss@restlet.tigris.org Objet : RE: GAE + GWT + Restlet 2.0 M3 + challenge response is null on server side Hi Jerome, It seems this bug still exists in 2.0 M6, M7, and current snapshot. I tried all three versions of gwt and gae jars with firefox 3.6 and Chrome 5.0.322.2 dev and ChallengeResponse are all null in request from the verify(request, response) method in my custom verifier class that subclasses LocalVerifier. The custom verifier works fine when it is used with regular restlet client, but not with gwt client. What would be the workaround? I'm using the same GWT+GAE environment with GWT 2.0 and GAE 1.3.1. Thanks, Weimin Below is the error message: java.lang.NullPointerException at com.rewardvista.server.authentication.UserVerifier.verify(UserVerifier.java: 37) at org.restlet.security.ChallengeAuthenticator.authenticate(ChallengeAuthentica tor.java:156) at org.restlet.security.Authenticator.beforeHandle(Authenticator.java:118) at org.restlet.routing.Filter.handle(Filter.java:201) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Router.doHandle(Router.java:472) at org.restlet.routing.Router.handle(Router.java:688) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:152) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.engine.ChainHelper.handle(ChainHelper.java:111) at org.restlet.engine.application.ApplicationHelper.handle(ApplicationHelper.ja va:72) at org.restlet.Application.handle(Application.java:375) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Router.doHandle(Router.java:472) at org.restlet.routing.Router.handle(Router.java:688) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Router.doHandle(Router.java:472) at org.restlet.routing.Router.handle(Router.java:688) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.engine.ChainHelper.handle(ChainHelper.java:111) at org.restlet.Component.handle(Component.java:385) at org.restlet.Server.handle(Server.java:474) at org.restlet.engine.ServerHelper.handle(ServerHelper.java:71) at org.restlet.engine.http.HttpServerHelper.handle(HttpServerHelper.java:150) at org.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:1035) at org.restlet.ext.gwt.GwtShellServletWrapper.service(GwtShellServletWrapper.ja va:187) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler .java:1093) at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFil ter.java:51) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler .java:1084) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(Transa ctionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler .java:1084) at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileF ilter.java:121) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler .java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712) at org.mortbay.jetty.webapp.WebAppContext.handle
RE: GAE + GWT + Restlet 2.0 M3 + challenge response is null on server side
Hi Jerome, It seems this bug still exists in 2.0 M6, M7, and current snapshot. I tried all three versions of gwt and gae jars with firefox 3.6 and Chrome 5.0.322.2 dev and ChallengeResponse are all null in request from the verify(request, response) method in my custom verifier class that subclasses LocalVerifier. The custom verifier works fine when it is used with regular restlet client, but not with gwt client. What would be the workaround? I'm using the same GWT+GAE environment with GWT 2.0 and GAE 1.3.1. Thanks, Weimin Below is the error message: java.lang.NullPointerException at com.rewardvista.server.authentication.UserVerifier.verify(UserVerifier.java:37) at org.restlet.security.ChallengeAuthenticator.authenticate(ChallengeAuthenticator.java:156) at org.restlet.security.Authenticator.beforeHandle(Authenticator.java:118) at org.restlet.routing.Filter.handle(Filter.java:201) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Router.doHandle(Router.java:472) at org.restlet.routing.Router.handle(Router.java:688) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:152) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.engine.ChainHelper.handle(ChainHelper.java:111) at org.restlet.engine.application.ApplicationHelper.handle(ApplicationHelper.java:72) at org.restlet.Application.handle(Application.java:375) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Router.doHandle(Router.java:472) at org.restlet.routing.Router.handle(Router.java:688) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.routing.Router.doHandle(Router.java:472) at org.restlet.routing.Router.handle(Router.java:688) at org.restlet.routing.Filter.doHandle(Filter.java:156) at org.restlet.routing.Filter.handle(Filter.java:203) at org.restlet.engine.ChainHelper.handle(ChainHelper.java:111) at org.restlet.Component.handle(Component.java:385) at org.restlet.Server.handle(Server.java:474) at org.restlet.engine.ServerHelper.handle(ServerHelper.java:71) at org.restlet.engine.http.HttpServerHelper.handle(HttpServerHelper.java:150) at org.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:1035) at org.restlet.ext.gwt.GwtShellServletWrapper.service(GwtShellServletWrapper.java:187) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093) at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:51) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:121) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:352) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) at org.mortbay.jetty.Server.handle(Server.java:313) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
RE: GAE + GWT + Restlet 2.0 M3 + challenge response is null on server side
Hi Lauri, Thanks for sharing this workaround. The current code sets the user and password given in ChallengeResponse on the internal RequestBuilder that is used: http://google-web-toolkit.googlecode.com/svn/javadoc/1.6/com/google/gwt/http /client/RequestBuilder.html#setPassword%28java.lang.String%29 Let's keep an eye on it. I suggest entering a bug report for it with your detailed environment: http://www.restlet.org/community/issues Best regards, Jerome Louvel -- Restlet ~ Founder and Lead developer ~ http://www.restlet.org Noelios Technologies ~ Co-founder ~ http://www.noelios.com -Message d'origine- De : webp...@tigris.org [mailto:webp...@tigris.org] Envoyé : vendredi 24 juillet 2009 12:12 À : discuss@restlet.tigris.org Objet : RE: GAE + GWT + Restlet 2.0 M3 + challenge response is null on server side Hi Jerome, I made a workaround for this. I'm adding the authorization header manually when building a Request using the following code: SeriesParameter headers = new Form(); headers.add(Authorization, Basic + base64EncodedCredentials); request.getAttributes().put(org.restlet.http.headers, headers); Adding Authorization header by hand was prohibited in HttpConverter, so I had to remove the authorization header check from there. Best, Lauri -- http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447dsMessageId=23751 46 -- http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447dsMessageId=2375493
RE: GAE + GWT + Restlet 2.0 M3 + challenge response is null on server side
Hi Lauri, Your GWT client looks OK to me and I'm surprised that you don't get the expected result. Where you able to solve this? Otherwise, we are planning to release Restlet 2.0 M4 by the end of the month which will include a fresh (automated) port of the Restlet core to GWT. I suggest that you try again at this point and enter a defect report if it still doesn't work. Best regards, Jerome Louvel -- Restlet ~ Founder and Lead developer ~ http://www.restlet.org Noelios Technologies ~ Co-founder ~ http://www.noelios.com -Message d'origine- De : webp...@tigris.org [mailto:webp...@tigris.org] Envoyé : mardi 7 juillet 2009 11:37 À : discuss@restlet.tigris.org Objet : GAE + GWT + Restlet 2.0 M3 + challenge response is null on server side Hi, I'm simply trying to implement really simple authentication mechanism using HTTP_BASIC. In GWT client I do the following: final Request request = new Request(getMethod(), GWT.getModuleBaseURL() + _url); ChallengeResponse challengeResponse = new ChallengeResponse(ChallengeScheme.HTTP_BASIC, _email, _password); request.setChallengeResponse(challengeResponse); final Client client = new Client(PROTOCOL); client.handle(request, _callback); However, in my ServerResource class the getRequest().getChallengeResponse() always returns null. So, am I missing something here or should this work like that? Thanks, Lauri -- http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447dsMessageId=23687 03 -- http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447dsMessageId=2372676
GAE + GWT + Restlet 2.0 M3 + challenge response is null on server side
Hi, I'm simply trying to implement really simple authentication mechanism using HTTP_BASIC. In GWT client I do the following: final Request request = new Request(getMethod(), GWT.getModuleBaseURL() + _url); ChallengeResponse challengeResponse = new ChallengeResponse(ChallengeScheme.HTTP_BASIC, _email, _password); request.setChallengeResponse(challengeResponse); final Client client = new Client(PROTOCOL); client.handle(request, _callback); However, in my ServerResource class the getRequest().getChallengeResponse() always returns null. So, am I missing something here or should this work like that? Thanks, Lauri -- http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447dsMessageId=2368703