泽西岛从网址获取凭据

时间:2017-01-01 21:57:06

标签: jersey

我有一个这样的网址:

http://log:pass@localhost:8080/myendpoint

泽西终点:

@GET @Produces(MediaType.APPLICATION_JSON) @Path("/login")
    @Consumes(MediaType.APPLICATION_JSON) public Response login(
            @Context HttpHeaders headers, @QueryParam("callback") String callback) 
{
}

理想情况下,我希望在我的端点方法中获得'log'和'pass'。如何在泽西岛做到这一点?我尝试了许多endpint方法签名,过滤器等,但它显示了我

http://localhost代替http://log:pass@localhost无处不在

如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

假设在前端,您使用JSON.stringify()将参数作为json对象发送,然后返回端点方法。将此作为方法签名JsonObject payload的第二个参数添加。然后,您可以在该方法中访问您的查询参数,如下所示

String log = payload.getString("log");
String pass = payload.getString("pass");

修订版

@Path("/login")
@GET
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response login(@Context UriInfo uriInfo, @Context HttpHeaders headers, @QueryParam("callback") String callback) {
    URI requestUri = uriInfo.getRequestUri();
    String authority = requestUri.getAuthority(); // authority contains what you need;
}