NutchServer的安全层
我曾作為GSoC 2016項目在Apache Nutch的NutchServer的Security Layer上工作,并完成了它。 在此博客文章中,我將解釋其工作原理和使用方法。 首先,建議您閱讀以前有關GSoC 2016接受的帖子: http ://furkankamaci.com/gsoc-2016-acceptance-for-apache-nutch/(如果您尚未閱讀的話)。
Apache Nutch是一個高度可擴展和可擴展的開源Web爬網程序軟件項目。 源于Apache Lucene,該項目已經多樣化,現在包括兩個代碼庫,分別是:
Nutch 1.x:成熟度高,可用于生產的履帶。 1.x依靠Apache Hadoop數據結構實現精細的配置,這對于批處理非常有用。
Nutch 2.x:這是一個從1.x直接汲取靈感的新興替代方案,但在一個關鍵方面有所不同。 通過使用Apache Gora處理對象到持久性映射,可以從任何特定的基礎數據存儲中抽象出存儲。 這意味著我們可以實現極為靈活的模型/堆棧,以將所有內容(獲取時間,狀態,內容,已解析的文本,外鏈,內鏈等)存儲到許多NoSQL存儲解決方案中。
Nutch 2.x具有REST API,但上面沒有安全層。 我已經實現了基本身份驗證,摘要式身份驗證,作為身份驗證機制的SSL支持以及對NutchServer的細粒度授權支持。
當您想在NutchServer API上啟用安全性時,應遵循以下方式:
當您想通過客戶端代碼連接到NutchServer API時,可以按照以下方式進行操作:
1.基本認證
ClientResource resource = new ClientResource(protocol + "://" + domain + ":" + port + path); resource.setChallengeResponse(challengeScheme, username, password);try {resource.get(); } catch (ResourceException rex) {//catch it }2.摘要式身份驗證
在第1步中使用相同的代碼,并在其后添加這些代碼:
// Use server's data to complete the challengeResponse object ChallengeRequest digestChallengeRequest = retrieveDigestChallengeRequest(resource); ChallengeResponse challengeResponse = new ChallengeResponse(digestChallengeRequest, resource.getResponse(), username, password.toCharArray());resource.setChallengeResponse(challengeResponse); try {resource.get(); } catch (ResourceException rex) {//catch it }...private ChallengeRequest retrieveDigestChallengeRequest (ClientResource resource) {ChallengeRequest digestChallengeRequest = null;for (ChallengeRequest cr : resource.getChallengeRequests()) {if (ChallengeScheme.HTTP_DIGEST.equals(cr.getScheme())) {digestChallengeRequest = cr;break;}}return digestChallengeRequest; }3. SSL
請遵循“基本身份驗證”中的相同步驟,但是不要忘記將SSL證書添加到您的信任存儲中。
NutchServer通過其REST API提供對許多功能的訪問。 實施身份驗證和授權使用戶可以通過安全方式與其進行通信。
翻譯自: https://www.javacodegeeks.com/2016/09/security-layer-nutchserver.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的NutchServer的安全层的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 路由器如何发挥极致网速300M路由器如何
- 下一篇: 华为路由器PPPoE配置华为路由器如何配