苍山做网站,秦皇岛建设网,wordpress个人版,小型静态网站是什么原因我曾作为GSoC 2016项目在Apache Nutch的NutchServer的Security Layer上工作#xff0c;并完成了它。 在此博客文章中#xff0c;我将解释其工作原理和使用方法。 首先#xff0c;建议您阅读以前有关GSoC 2016接受的帖子#xff1a; http ://furkankamaci.com/gsoc-2016-acc… 我曾作为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上启用安全性时应遵循以下方式 通过将设置 restapi.auth属性设置为BASIC DIGEST或SSL 在nutch-site.xml上启用安全性。 NONE是默认的没有提供安全。 如果您选择了BASIC或DIGEST作为身份验证类型则设置restapi.auth.users属性。 用户名密码和角色应以竖线字符|分隔。每个用户应以逗号分隔。 即admin | admin | admin用户|用户|用户。 默认值为admin | admin | adminuser | user | user 集restapi.auth.ssl.storepathrestapi.auth.ssl.storepass如果你有在restapi.auth属性选择SSL作为验证模式restapi.auth.ssl.keypass性能。 当您想通过客户端代码连接到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 servers 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