RESTLET 2.1RC1:ChallengeResponse从GWT客户端发送到服务器始终为NULL

时间:2011-12-12 19:39:59

标签: gwt authentication restlet

我有:

  • 客户端上的RESTLET GWT 2.1RC1
  • 服务器上的RESTLET J2EE 2.1RC1

无论我尝试什么,我一直在为此而奋斗:

    ClientResource r = new ClientResource("/service" + UsersServiceProxy.URL);
    r.setChallengeRespon​se(ChallengeScheme.H​TTP_BASIC, "user1", "secret");
    r.setOnResponse(new Uniform() {
        public void handle(Request request, Response response) {
           .....
        }
    });
    r.get();

或者这段代码:

    UserServiceProxy userService = GWT.create(UserServiceProxy.class);
    userService.getClientResource().setReference(url);
    userService.getClientResource().setChallengeResponse(new ChallengeResponse(ChallengeScheme.HTTP_BASIC, "user1", "secret"));
    userService.getUser(username + ":" + password, new Result<User>() {

        @Override
        public void onFailure(Throwable caught) {
                ......
        }

        @Override
        public void onSuccess(User user) {
            .....
        }
    });

问题:

在服务器端,没有收到ChallengeResponse(== NULL)。使用wireshark进行调试显示没有通过线路发送“授权:”。

使用Chrome开发工具我可以看到XHR请求已发送到:http://user1:secret@​127.0.1.1:8888/servi​ce/user

所以这里,用户名/密码是传递给服务器而不是身份验证标头? 如何访问这些服务器端?

我的设置不正确吗? 这是this bug的回归吗?

2 个答案:

答案 0 :(得分:0)

在Restlet GWT Edition 2.1RC1中没有发送授权标头,我提交了一个补丁,至少修复了BASIC auth,所以我可以继续。

请参阅http://restlet.tigris.org/issues/show_bug.cgi?id=1060

答案 1 :(得分:0)

此错误已得到修复。请参阅下一个2.1 RC2和2.0.11版本。

有关此修复程序的更新,请参阅此问题: http://restlet.tigris.org/issues/show_bug.cgi?id=1060