ES的两种认证登录方式: JAVA REST Client/HTTP Client

这篇具有很好参考价值的文章主要介绍了ES的两种认证登录方式: JAVA REST Client/HTTP Client。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 JAVA REST Client设置身份认证

通过RestHighLevelClient发送的es请求验证方式:

final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
/** 设置账号密码 */
credentialsProvider.setCredentials(AuthScope.ANY,
        new UsernamePasswordCredentials(ElasticsearchConstants.ELASTIC_USER_NAME, ElasticsearchConstants.ELASTIC_PASSWORD));
RestHighLevelClient client = new RestHighLevelClient(
        RestClient.builder(new HttpHost(ElasticsearchConstants.ELASTIC_SEARCH_HOST, ElasticsearchConstants.ELASTIC_SEARCH_PORT, "http"))
        .setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
            @Override
            public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpAsyncClientBuilder) {
                return httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
            }
        })
);

2 HTTP Client设置身份认证

通过http直接发送的es请求认证方式:文章来源地址https://www.toymoban.com/news/detail-563973.html

CloseableHttpClient httpClient = HttpClients.createDefault();

//待连接的es-url
String url ="http://192.168.1.1:9200"

HttpPut httpGet = new HttpGet(url);

RequestConfig requestConfig = RequestConfig.custom()
                            .setConnectTimeout(35000)
                            .setConnectionRequestTimeout(35000)
                            .setSocketTimeout(60000).build();

httpGet.setConfig(requestConfig);

//添加表头配置
httpGet.setHeader("Content-type", "application/json");
httpGet.setHeader("Accept", "application/json");
httpGet.setHeader("DataEncoding", "UTF-8");
 
// 加es身份认证
HttpHost targetHost = new HttpHost("192.168.1.1", 9200, "http");
/** 设置账号密码 */
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
                        new UsernamePasswordCredentials("es_user", "es_password"));
 
// Create AuthCache instance
AuthCache authCache = new BasicAuthCache();

// Generate BASIC scheme object and add it to the local auth cache
BasicScheme basicAuth = new BasicScheme();

authCache.put(targetHost, basicAuth);
 
// Add AuthCache to the execution context
HttpClientContext context = HttpClientContext.create();
context.setCredentialsProvider(credentialsProvider);
context.setAuthCache(authCache);
 
CloseableHttpResponse httpResponse = httpClient.execute(httpGet, context);

//获取连接状态码 (success:200;failed:401)
int statusCode = httpResponse.getStatusLine().getStatusCode()
//验证
if(statusCode == 200){
  System.out.println("ES连接成功!")
}else{
   System.out.println("ES连接失败!")
}

到了这里,关于ES的两种认证登录方式: JAVA REST Client/HTTP Client的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Qt Http请求,post和get的两种方式

    今天我们介绍一下QT的http请求,这里有post和get两种方式 一、post请求方式:参数分为网址和具体请求值两个部分,有时候还需要设置头信息,看具体情况定 二、get请求方式:参数和网址拼接到一起请求 三、主要区别: get用于请求获取数据,post向指定的资源创建修改数据 g

    2024年02月15日
    浏览(48)
  • (一)python发送HTTP 请求的两种方式(get和post )

    注:发送请求(包括请求行、方法类型、头、体) 常见的请求方式有get、post、put、delete            格式:requests.get() (内容: url必填; params选填:url参数字典) # ~ 无参数的get请求 # ~ 有参数的get请求 # ~ 使用params的get请求        知识扩展#  requests.post() post请求分为5种,常用

    2024年02月02日
    浏览(68)
  • Java开启异步的两种方式

    必须配置异步线程池,否则异步不会生效。 @EnableAsync 注解:指定异步线程池。不指定默认使用:SimpleAsyncTaskExecutor线程池 SimpleAsyncTaskExecutor是一个最简单的线程池,它没有任何的线程相关参数配置,它会为每个任务创建一个新的线程来执行,因此不建议在生产环境中使用。

    2024年02月06日
    浏览(59)
  • Moqui REST API的两种实现方法

    实现Restful API的方法  实现REST API有两种方法。 第一种: The main tool for building a REST API based on internal services and entity operations is to define resource paths in a  Service REST API  XML file such as the  moqui.rest.xml  file in  moqui-framework  and the  mantle.rest.xml  file in  mantle-usl . With your own Service RES

    2024年02月02日
    浏览(33)
  • Java 获取小程序码的两种方式

    目前小程序推出了自己的识别码,小程序码, 圆形的码看起来比二维码好看。 本文总结微信小程序的获取小程序二维码的接口开发。官方地址 主要内容摘抄自微信小程序的API文档,java接口开发是自己总结开发。 通过后台接口可以获取小程序任意页面的二维码,扫描该二维

    2024年02月14日
    浏览(37)
  • 线程方法接收参数示例,Java的两种线程实现方式区别

    总所周知,Java实现多线程有两种方式,分别是继承Thread类和实现Runable接口,那么它们的区别是什么? 继承 Thread 类: 通过继承 Thread 类,你可以创建一个直接表示线程的类。你可以覆盖 Thread 类中的 run 方法来定义线程的逻辑。当调用 start 方法启动线程时,会执行该类中的

    2024年02月11日
    浏览(40)
  • 线程方法接收参数和返回参数,Java的两种线程实现方式对比

    总所周知,Java实现多线程有两种方式,分别是继承Thread类和实现Runable接口,那么它们的区别是什么? 继承 Thread 类: 通过继承 Thread 类,你可以创建一个直接表示线程的类。你可以覆盖 Thread 类中的 run 方法来定义线程的逻辑。当调用 start 方法启动线程时,会执行该类中的

    2024年02月11日
    浏览(41)
  • 【Redis,Java】Redis的两种序列化方式—nosql数据库

    redis和mysql的区别: redis是属于nosql的数据库,而mysql是属于sql数据库,redis是属于nosql数据库。mysql是存储在磁盘中的,redis是存储在内存中的,所以redis的读取书读快。这里所说的redis代表nosql,而mysql代表sql。 redis的数据库是以键值对为基础存储在内存中的,而mysql为代表的关

    2024年02月21日
    浏览(53)
  • Java常用登录认证和授权方式

    具体使用那种需要看自己项目的体量和具体的场景。 本案例中提供了五中方案及详细的解决办法,希望对你有帮助。 【方案1-通过session对象共享数据】 用户登录之后将用户的信息和权限信息放入到session中,然后再执行所有的操作中。获取session中存储的信息,如果信息存在

    2024年02月16日
    浏览(35)
  • java 将word转为pdf文件的两种方式【spire.doc.free】【documents4j】

    如资产证明等场景下,一般要求同时生成word与pdf两种格式的证明文件,且两者格式需保持一致,可以各自单独生成,但那样可能需要维护两个模板文件,所以也可以仅定义一份word的模板文件,使用模板生成word文件,再将word转换为pdf,这样不仅少维护一个模板,也可以保证

    2024年02月12日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包