0

我有一个 JAX-RS Restful 网络服务。这个资源/网络服务是我们的资产。我将此服务 url 公开给调用此服务资源的第三方客户端。我想保护这项服务免受其他授权客户/供应商的侵害。

因此我的问题是——

这个怎么保护。

我想包括一个 API 密钥,并且 API 密钥应该与一个特殊的客户端 API 密钥匹配。而且我还需要匹配客户端 url 地址意味着请求来自哪个 url。

这个怎么做。如何获取调用我们的休息服务的 URL。我在 Tomcat 7.0 中部署我的休息。

谢谢

更新 -

@Path("report")
@Produces(javax.ws.rs.core.MediaType.APPLICATION_XML)
public class DnaReportResource {

    @GET
    @Produces(javax.ws.rs.core.MediaType.APPLICATION_XML)
    public void getDnaReport(@Context UriInfo uri) {
        System.out.println(uri.getRequestUri());
        System.out.println(uri.getPath());
        System.out.println(uri.getAbsolutePath());
        System.out.println(uri.getBaseUri());

        //MultivaluedMap<String, String> queryParams = uri.getQueryParameters();
        }
}
4

2 回答 2

0

从您的 servlet 处理程序中,您可以调用

String url = request.getRequestURL().toString();

在 servlet 中获取请求 URL

编辑

你试过了吗

String url = uri.getRequestUri().toString();

它返回什么?

于 2013-09-27T07:14:18.733 回答
0

您可以利用Tomcat Realm配置来实现对客户端的身份验证。

于 2013-09-27T07:31:54.463 回答