elasticsearch httpclient认证机制

Posted 李悠然

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了elasticsearch httpclient认证机制相关的知识,希望对你有一定的参考价值。

最近公司单位搬迁,所有的服务都停止了,我负责的elasticsearch不知道怎么回事,一直不能运行呢,因此,我一直在负责调试工作。经过两天的调试工作,我发现新的服务器增加了httpclient认证机制,经过几次研究,发现服务器的新增了如下内容:

 http.basic.log: false
 http.basic.user: "hett"
 http.basic.password: "****"

因此,每次在进行ik拆分词的时候会有提示信息就是:http没有认证,因此,在加载http链接之间加入提前认证机制,在初始化bean的时候就开始认证,代码做如下修改:

public class ElasticsearchServiceImpl implements IElasticsearchService , InitializingBean

改类继承初始化bean的认证


实现父类的方法:

     @Override
    public void afterPropertiesSet() throws Exception {
        try {
            Properties props = PropertiesLoaderUtils
                    .loadAllProperties("********");
            String authUser = StringUtil
                    .null2Str(props.getProperty("username"));
            String authPwd = StringUtil.null2Str(props.getProperty("password"));
            credentialContext = HttpClientContext.create();
            // 认证提供者
            CredentialsProvider credsProvider = new BasicCredentialsProvider();

            credsProvider.setCredentials(AuthScope.ANY,
                    new UsernamePasswordCredentials(authUser, authPwd));

            AuthCache authCache = new BasicAuthCache();
            // 提前填充认证信息缓存到上下文中,这样,以这个上下文执行的方法,就会使用抢先认证。可能会出错
            credentialContext.setAuthCache(authCache);
            credentialContext.setCredentialsProvider(credsProvider);
        } catch (Exception ex) {
            logger.warn("read elasticsearch credential error", ex);
        }
    }

再次访问的时候提示如下:

 

debug抛出的信息是认证通过

经过几天的折腾终于完成了搜索标签的之类的服务啦
好开心啊

以上是关于elasticsearch httpclient认证机制的主要内容,如果未能解决你的问题,请参考以下文章

elasticsearch 用java client 多个and or 条件 怎么写

nodejs使用——以elasticsearch-exporter为例

elasticsearch7.x 开启安全认证xpack,以及kibanalogstashfilebeat组件连接开启安全认证的es;

戴尔R720装08为啥认不到硬盘?

影驰悍将120SSD盘只认20M,有时能认,有时认不到的修复

HAHA LUA耳机认证照