如何保护安静的Web服务免受未经授权的访问

时间:2013-09-27 07:03:17

标签: java web-services security rest jax-rs

我有一个JAX-RS Restful webservice。这个资源/网络服务对我们来说很有用。我将此服务URL暴露给将调用此服务资源的第三方客户端。我想从其他授权客户/供应商处保护此服务。

因此我的问题是 -

如何保护这一点。

我想包含API密钥,API密钥应与perticuler客户端API密钥匹配。而且我还需要匹配来自请求即将发送的客户端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();
        }
}

2 个答案:

答案 0 :(得分:0)

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

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

Getting request URL in a servlet

修改

你试过

吗?

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

它返回什么?

答案 1 :(得分:0)

您可以使用Tomcat Realm配置来验证您的客户端。