我们可以为ElasticSearch服务,添加我们的 用 户 名 以 及 密 码 \color{red}{用户名以及密码} 用户名以及密码进行权限验证。那么我们就需要在我们的代码中进行授权,不然就会提示提示No Authentication的错误信息。

1.Spring Boot与ElasticSearch结合

当使用ElasticSearch和Spring Boot相结合的时候,我们可以在application.yaml配置文件中,加入下面的属性为其添加用户名以及密码验证。代码无需进行任何改动即可完成授权工作。

spring:elasticsearch:rest:username: elasticpassword: elastic

2.单独使用ElasticSearch进行授权

  1. 首先在pom.xml文件中添加ElasticSearch的依赖文件:
        <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.8.1</version></dependency>
  1. 在ElasticSearch无需授权的时候:
    我们可以使用ElasticSearch High Level创建一个客户端对象,完成后续向ElasticSearch服务发送请求:
RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200, "http"));
RestHighLevelClient client = new RestHighLevelClient(builder);

注意:ElasticSearch High Level的文档中 并 没 有 \color{red}{并没有} 并没有提及如何进行登录验证操作,文档而是在Low Level Basic Authentication的进行了说明。

  1. 在ELasticSearch需要权限验证:
    我们可以在构建RestClient.builder方法的时候,提供一个HttpClientConfigCallback接口实例为ElasticSearch配置基本的授权信息。通过setHttpClientConfigCallback方法设置HttpClientConfigCallBack实例,代码如下:
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
//  设置用户名以及密码
UsernamePasswordCredentials usernamePasswordCredentials = new UsernamePasswordCredentials("elastic", "elastic");
credentialsProvider.setCredentials(AuthScope.ANY, usernamePasswordCredentials);RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200, "http")).setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider));
RestHighLevelClient client = new RestHighLevelClient(builder);

注意:第二步第三步使用 其 中 一 个 \color{red}{其中一个} 其中一个就可以了。第二步表示没有授权的时候,连接ElasticSearch服务的方法,而第三步表示ElasticSearch有授权时候,连接ElasticSearch服务的方法。

剩下的工作就和没有授权的时候一样了。例如搜索的时候,创建一个SearchRequest对象,添加数据的时候,创建一个IndexRequest对象。等等操作


更多精彩内容:请关注公众号:

ElasticSearch进行进行权限验证相关推荐

  1. shopnc 支持 支付宝快捷登陆 shopnc权限验证原理说明

    为目前使用的是shopnc商场二次开发,shopnc本身做了qq互联和微博快捷登陆的api,做成了集成通用的接口 首先说下基本的这种类型的api访问方式,首先,的有个配置文件,配置你申请的id和key ...

  2. 【ASP.NET】ASP.NET中权限验证使用OnAuthorization实现

    在项目开发中,通常我们都会涉及到用户登录才能访问的网页,比如购物网站,我们浏览商品,添加购物车(以前开发的时候在这里就需要登录用户,但是现在有了缓存的实现,这里可以将商品加入缓存,等到结账的时候再登录 ...

  3. springboot + 拦截器 + 注解 实现自定义权限验证

    springboot + 拦截器 + 注解 实现自定义权限验证 最近用到一种前端模板技术:jtwig,在权限控制上没有用springSecurity.因此用拦截器和注解结合实现了权限控制. 1.1 定 ...

  4. android token过期怎么跳转登录_用sa-token轻松解决网站权限验证

    sa-token是什么? 一个的JavaWeb权限认证框架,强大.简单.好用 与其它权限认证框架相比,sa-token尽力保证两点: - 上手简单:能自动化的配置全部自动化,不让你费脑子 - 功能强大 ...

  5. 2_MVC+EF+Autofac(dbfirst)轻型项目框架_用户权限验证

    前言 接上面两篇 0_MVC+EF+Autofac(dbfirst)轻型项目框架_基本框架 与 1_MVC+EF+Autofac(dbfirst)轻型项目框架_core层(以登陆为例) .在第一篇中介 ...

  6. 基于 Annotation 拦截的 Spring AOP 权限验证方法

    余 清, 软件工程师, IBM 简介: 使用 Annotation 可以非常方便的根据用户的不同角色,分配访问 Java 方法的权限.在 Java Web 开发中,使用这种方法,可以提高系统的松耦合度 ...

  7. Swagger生成的接口需要权限验证的处理方法

    通常开发API的时候需要对接口进行权限验证,而我们在使用Swagger生成接口文档界面的时候,直接调用需要权限验证的接口会提示"当前用户没有登陆" 为了解决此问题,我们需要更改一下 ...

  8. struts2学习笔记--拦截器(Interceptor)和登录权限验证Demo

    理解 Interceptor拦截器类似于我们学过的过滤器,是可以在action执行前后执行的代码.是我们做web开发是经常使用的技术,比如权限控制,日志.我们也可以把多个interceptor连在一起 ...

  9. 简单扩展shiro 实现NOT、AND、OR权限验证(支持复杂一点的表达式)

    2019独角兽企业重金招聘Python工程师标准>>> 简单扩展shiro 实现NOT.AND.OR权限验证(支持复杂一点的表达式) .https://my.oschina.net/ ...

最新文章

  1. oracle dataguard详解,Oracle DataGuard数据备份方案详解
  2. 船舶定位实时查询系统_真趣:IDC机房人员定位系统,位置实时监测,巡检路线智能规划...
  3. 第九节: EF的性能篇(二) 之 Z.EntityFramework.Extensions程序集解决EF的性能问题
  4. Linux无网络升级gcc,Linux离线(手动)升级GCC
  5. Java-Integer和int有什么区别
  6. UC:我们是怎么做出 Chromium M35 内核浏览器
  7. 这真有点“凶”... 开发转测试,薪资不降反升
  8. mysql cluster 乱码_Mysql中文乱码问题完美解决方案
  9. python verilog就业_Verilog会被淘汰吗?
  10. 计算机二级系统环境,计算机等级二级Java考试辅导:“系统和环境”单元综合复习...
  11. python选择排序代码_Python 数据结构与算法——选择排序(迭代版、递归版)
  12. ofd 文件发票解析
  13. 在MarkDown的表格中插入代码
  14. python制作网页挂机_Python实现自动挂机脚本(GUI 打包)
  15. 手把手指导制作一个 WebAR 与小程序 AR
  16. 图灵联邦:一个全能、多元生态的IT技术交流社区
  17. 物理-三菱镜-三菱镜效应:三菱镜效应 百科
  18. NVL、NVL2、NULLIF、COALESCE的区别是什么?
  19. Hibernate的evict方法和clear方法的区别
  20. 瑞星误删用友服务文件ServerNT.exe

热门文章

  1. js sha256加密和java,在C#中的sha256加密和js中的sha256加密结果不同
  2. 大神教你如何剪辑热播剧《你是我的荣耀》,3分钟精彩片段变现!【覃小龙课堂】
  3. Java程序员的JavaScript学习笔记(13—— jQuery UI)
  4. c语言简单的while语句,C语言入门 — while语句
  5. AVX |贴片钽电容的频率特性分析
  6. Verilog中的integer类型
  7. [更新] 开源网管软件Cacti系列讲座视频【优酷】
  8. 微型计算机CAD是什么意思,CAD是什么?CAD有哪些功能?
  9. C语言的基本的输入输出
  10. 绝地求生大逃杀体验服服务器维护,《绝地求生大逃杀》PC版今日服务器更新维护 上线测试服内容!...