2013-09-27 140 views
0

我有一個JAX-RS Restful web服務。這個資源/ web服務對我們來說是資產。我將這個服務url暴露給將調用這個服務資源的第三方客戶端。我想要保護這項服務不受其他授權客戶/供應商的保護。如何保護寧靜的web服務免受未經授權的訪問

因此,我的問題是 -

如何保護這一點。

我想包括一個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(); 
     } 
} 
+0

apache配置可能有更多與這種事情有關。除非你沒有運行Apache,而只是使用tomcat。 – FaddishWorm

+0

@FaddishWorm我正在使用Tomcat Apache 7.0服務器。 – Kumar

回答

0

從你的servlet處理程序可以調用

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

Getting request URL in a servlet

編輯

,您是否試圖

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

是什麼回報?

+0

怎麼可能在JAX-RS jersey.Folow RESTful服務的資源類是例子 - 公共無效getReport(@Context UriInfo URI){ \t \t的System.out.println(uri.getRequestUri()); \t \t System.out.println(uri.getPath()); \t \t System.out.println(uri.getAbsolutePath()); \t \t System.out.println(uri.getBaseUri()); } – Kumar

+0

告訴我你已經嘗試到目前爲止 – FaddishWorm

+0

@fadiishworm更新 – Kumar

0

您可以利用Tomcat Realm配置來實現您的客戶身份驗證。

相關問題