博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java创建elasticsearch5.X的Client,鉴权非鉴权两种模式
阅读量:6617 次
发布时间:2019-06-25

本文共 3923 字,大约阅读时间需要 13 分钟。

hot3.png

  java连接客户端主要为两种方式,一种是没有鉴权,一种是集群通过search-guard添加ssl鉴权。

  • 无鉴权模式
import org.elasticsearch.client.Client;import org.elasticsearch.client.transport.TransportClient;import org.elasticsearch.common.settings.Settings;import org.elasticsearch.common.transport.InetSocketTransportAddress;import org.elasticsearch.transport.client.PreBuiltTransportClient;import org.springframework.jdbc.core.JdbcTemplate;import javax.sql.DataSource;import java.net.InetAddress;import java.net.UnknownHostException;public class Test {        private Client client = null;        private DataSource dataSource;        private JdbcTemplate jdbcTemplate;        public void setDataSource(DataSource dataSources) {            this.dataSource = dataSources;            this.jdbcTemplate = new JdbcTemplate(dataSource);        }        public Client getESClient() {            //集群ip            String host = "127.0.0.1";            //集群tcp端口,默认9300            int port = 9300;            //集群名称,配置里的cluster_name            String clusterName = "test_es";            Settings settings = Settings.builder()                    .put("cluster.name", clusterName)                    .put("client.transport.ping_timeout", "10s")                    .build();            TransportClient client = new PreBuiltTransportClient(settings);            try {                //多节点的集群,在此处分别调用client.add..即可                client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(host), port));            } catch (UnknownHostException e) {                e.printStackTrace();            }            return  client;        }    }
  • 需要添加验证的 (需要验证方提供鉴权文件,然后引入search-guard-ssl jar文件)
import org.elasticsearch.client.Client;import org.elasticsearch.client.transport.TransportClient;import org.elasticsearch.common.settings.Settings;import org.elasticsearch.common.transport.InetSocketTransportAddress;import org.elasticsearch.transport.client.PreBuiltTransportClient;import org.springframework.jdbc.core.JdbcTemplate;import com.floragunn.searchguard.ssl.SearchGuardSSLPlugin;import javax.sql.DataSource;import java.net.InetAddress;import java.net.UnknownHostException;public class Test {        private Client client = null;        private DataSource dataSource;        private JdbcTemplate jdbcTemplate;        public void setDataSource(DataSource dataSources) {            this.dataSource = dataSources;            this.jdbcTemplate = new JdbcTemplate(dataSource);        }        public Client getESClient() {            //集群ip            String host = "127.0.0.1";            //集群tcp端口,默认9300            int port = 9300;            //集群名称,配置里的cluster_name            String clusterName = "test_es";            //鉴权文件路径            String pathHome = "/home/test/";            //key文件名称            String keyFile = "";            //jks文件名称            String jksFile = "";            Settings settings = Settings.builder()                    .put("cluster.name", clusterName)                    .put("client.transport.ping_timeout", "10s")                    .put("path.home",pathHome)                    .put("searchguard.ssl.transport.enabled", true)                    .put("searchguard.ssl.transport.keystore_filepath", keyFile)                    .put("searchguard.ssl.transport.truststore_filepath", jksFile)                    .put("searchguard.ssl.transport.enforce_hostname_verification", false)                    .build();            TransportClient client = new PreBuiltTransportClient(settings);            try {                //多节点的集群,在此处分别调用client.add..即可                client = new PreBuiltTransportClient(settings,SearchGuardSSLPlugin.class)                        .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(host), port));            } catch (UnknownHostException e) {                e.printStackTrace();            }            return  client;        }    }

 

转载于:https://my.oschina.net/fsj42930508/blog/3047351

你可能感兴趣的文章
查看Linux操作系统安装的位数(getconf 命令应用)
查看>>
ifstream读取文件失败和乱码问题
查看>>
Python信息采集器使用轻量级关系型数据库SQLite
查看>>
zookeeper中的exception的问题
查看>>
final+基本类型导致只编译常量类引起的错误
查看>>
分库分表的几种常见玩法及如何解决跨库查询等问题
查看>>
把GPS经纬度放入两个字符串,写入文件
查看>>
Java操作MongoDB实现CRUD
查看>>
给js文件传参数
查看>>
tomcat web.xml启动加载类
查看>>
Linux 配置SSH信任
查看>>
【九度OJ1352】|【剑指offer41】和为S的两个数字
查看>>
《android-文件大小》
查看>>
HTTPS的工作原理
查看>>
PhoneGap使用PushPlugin插件实现消息推送
查看>>
Boyer-Moore 算法介绍
查看>>
关于Java中的单例模式
查看>>
datepicker
查看>>
CentOS 7输入startx无法启动图形化界面
查看>>
#51CTO学院四周年# 终于在这里遇到你
查看>>