泽西岛的OAuth

RESTful系统是使用平针织物构建的。 验证签名并且无法执行签名时会发生错误。 如果了解原因的人进入,请教。 MacOS X. 码头 Google App Engine (客户)
@GET
@Path("/oauth_client")
@Produces("text/html")
public String oauthClient() {

    OAuthParameters params = new OAuthParameters().consumerKey("hoge").signatureMethod("HMAC-SHA1").timestamp().nonce().version("1.1").token("sho1get");
    OAuthSecrets secrets = new OAuthSecrets().consumerSecret("testtest").tokenSecret("testtest");

    Client client = Client.create();
    WebResource resource = client.resource("http://localhost:8080/v1/test/oauth_provider");

    OAuthClientFilter filter = new OAuthClientFilter(client.getProviders(), params, secrets);
    resource.addFilter(filter);

    System.out.println("==== Client =====");
    return resource.get(String.class);
}
(提供商)
@Path("/oauth_provider")
@Produces("text/plain")
public String oauthProvider(@Context HttpContext context) {

    OAuthServerRequest request = new OAuthServerRequest(context.getRequest());
    OAuthParameters params = new OAuthParameters().readRequest(request);
    OAuthSecrets secrets = new OAuthSecrets().consumerSecret("hoge").tokenSecret("testtest");
    String timestamp = params.getTimestamp();

    try {
        /* The error occurs here. */
        if (OAuthSignature.verify(request, params, secrets)) {
            return "OK";
        }
    } catch (OAuthSignatureException e) {
        log.warning(e.getMessage());
    } catch (UniformInterfaceException e) {
        log.warning(e.getMessage());
    } catch (Exception e) {
        log.warning(e.getMessage());
    }

    return "ERROR";
}
(错误)
[java] 2011/03/09 4:52:07 com.sun.jersey.spi.container.ContainerResponse mapMappableContainerException
 [java] SEVERE: The exception contained within MappableContainerException could not be mapped to a response, re-throwing to the HTTP container
 [java] java.lang.AbstractMethodError
 [java]         at com.sun.jersey.oauth.signature.OAuthSignature.constructRequestURL(OAuthSignature.java:193)
 [java]         at com.sun.jersey.oauth.signature.OAuthSignature.elements(OAuthSignature.java:218)
 [java]         at com.sun.jersey.oauth.signature.OAuthSignature.verify(OAuthSignature.java:117)
 [java]         at jp.tryden.resources.test.TestResource.oauthProvider(TestResource.java:259)
 [java]         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 [java]         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 [java]         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 [java]         at java.lang.reflect.Method.invoke(Method.java:597)
 [java]         at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100)
 [java]         at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.invokeSubLocator(SubLocatorRule.java:162)
 [java]         at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:94)
 [java]         at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:133)
 [java]         at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:83)
 [java]         at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:133)
 [java]         at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:71)
 [java]         at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:990)
 [java]         at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:941)
 [java]         at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:932)
 [java]         at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:384)
 [java]         at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:451)
 [java]         at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:632)
 [java]         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
 [java]         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
 [java]         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
 [java]         at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58)
 [java]         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
 [java]         at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
 [java]         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
 [java]         at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122)
 [java]         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
 [java]         at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
 [java]         at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
 [java]         at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
 [java]         at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
 [java]         at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
 [java]         at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70)
 [java]         at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
 [java]         at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:349)
 [java]         at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
 [java]         at org.mortbay.jetty.Server.handle(Server.java:326)
 [java]         at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
 [java]         at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
 [java]         at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
 [java]         at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
 [java]         at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
 [java]         at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
 [java]         at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
 [java] 2011/03/09 4:52:07 com.google.apphosting.utils.jetty.JettyLogger warn
    
已邀请:
您是否使用最新的MacOS Java更新更新了计算机? http://support.apple.com/kb/HT4562 此更新导致Google App Engine dev_server崩溃,并且可能也会影响您。不知道是谁应该受到责备,但是在这里提交了一个appengine bug:http://code.google.com/p/googleappengine/issues/detail?id = 4712 如果有很多人为这个问题担任主角,我们可能会得到更快的回复。     

要回复问题请先登录注册