设为首页 收藏本站
查看: 1348|回复: 0

[经验分享] 七、Solr服务部署和安全

[复制链接]

尚未签到

发表于 2015-7-16 11:38:49 | 显示全部楼层 |阅读模式
概念:
  我们知道,Solr是以webapp的形式运行的,那么我们只需要把Solr.war文件部署到web容器中,便可以运行了,但是因为需要连接数据库做索引并且提供线上的服务调用query接口,那么Solr的安全性是需要考虑的。因为Solr并没有自带Ip访问限制。那么我们需要自己来实现。
  
  思路是将Solr导入到普通web project中,然后加上相应的类去实现Ip访问限制的功能。

实现
  我们将Solr.war解压后得到下列目录结构:
DSC0000.png
  
  这本来就是一个web project 的目录结构,那么我们可以将这个目录导入到eclipse中,
  步骤一:
  在eclipse/myeclipse中新建普通web project。
  步骤二:
  将solr-4.9.0.war解压
  步骤三:
  将war文件解压后的目录中所有文件复制到eclipse项目中的webroot下:
DSC0001.png
  
  步骤四:
  修改web.xml文件中solrhome的路径。如果是在web容器中设置的话,就不需要执行这一步,具体参见博客:二、Solr安装(Tomcat)
  




solr/home
D:/SolrIndex
java.lang.String

  
  步骤五:
  添加jar包,除了Solr自带的jar包外,根据需要添加相应的jar文件,比如我就添加了Mysql的jdbc驱动和Spring
DSC0002.png
  
  步骤六:
  新建config source folder,用来放置相应的配置文件,不一定要建文件夹,只要保证相应的配置文件在部署后的class文件中即可。我新建文件夹是方便以后修改配置。
DSC0003.png
  
  步骤七(关键):
  这一步就是核心的一部,也就是IP限制和一系列功能的实现,在config中配置了允许访问的IP地址:
  allows=127.0.0.1
  然后新建一个类AccessFilter继承了Spring的filter,接收到一个访问请求后,根据请求的IP和配置文件中允许访问的IP对比,判断是否允许访问。
  下面是doFilter方法:



public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// 获取request和response

HttpServletRequest servletRequest = (HttpServletRequest) request;
HttpServletResponse servletResponse = (HttpServletResponse) response;

String remoteAddr = servletRequest.getRemoteAddr();
//判断是否是允许的IP
if(allow(remoteAddr)){
//允许访问

chain.doFilter(request, response);
}else{
//不允许访问,返回错误信息

servletResponse.setStatus(HttpServletResponse.SC_FORBIDDEN);
servletResponse.getWriter().print("403 Forbidden");
}

}
  
  最后附上项目的目录结构:
DSC0004.png
  

总结:
  我的思路是将Solr转化成一个普通的eclipse web project,然后根据需求,往项目中添加相应的类,实现相应的功能,也就是在Solr外面再加了一层,把Solr集成到了web project中。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-87267-1-1.html 上篇帖子: 自己封装的一个Solr Data Import Request Handler Scheduler 下篇帖子: Solr分布式搜索技术实现分析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表