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抛出的信息是认证通过

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

时间: 2024-10-10 04:09:08

elasticsearch httpclient认证机制的相关文章

HttpClient 认证

第四章 HTTP认证 HttpClient提供对由HTTP标准规范定义的认证模式的完全支持.HttpClient的认证框架可以扩展支持非标准的认证模式,比如NTLM和SPNEGO. 4.1 用户凭证 任何用户身份验证的过程都需要一组可以用于建立用户身份的凭据.用户凭证的最简单的形式可以仅仅是用户名/密码对.UsernamePasswordCredentials代表了一组包含安全规则和明文密码的凭据.这个实现对由HTTP标准规范中定义的标准认证模式是足够的 UsernamePasswordCred

[CentOS 7系列]使用密钥认证机制远程登录

当服务器操作系统没有配置远程密钥认证时,默认需要手动输入密码口令. 以下用putty为例: 1.使用putty远程ssh登录192.168.137.100这台主机 2.第一次登录选择"是(Y)",信任该主机,缓存该主机登录信息. 3.登录时,要输入正确的账户和口令,才能正常登录该主机. 下面使用putty和xshell演示如何使用密钥机制远程登录: 一.使用putty密钥认证机制登录 1.打开putty安装目录中的putty key generator软件,点击"Genera

Xshell使用密钥认证机制远程登录Linux

密钥认证是Linux下ssh服务支持的一种安全认证机制.它使用一对加密字符串,一个称为公钥(publickey),用于加密:另一个称为密钥(privatekey),只有创建者才能拥有使用,其用于解密.那么如何使用密钥认证登陆Linux呢? 1.下Xshell软件 在www.baidu.com搜索框内输入xshell,出现搜素结果后,点击高速下载或者普通下载,开始下载xshell软件. 2.安装xshell软件 Xshell支持多国语言版本,且可以免费获得.在安装时要注意选择免费版本,即"免费为家

(HttpClient超时机制)timeout调度算法探讨

mark一下: HttpClient超时机制(安全问题处理:访问超大文件控制) 不过httpclient4开始好象没有MultiThreadedHttpConnectionManager这个类了,代替的应该是:PoolingHttpClientConnectionManager.

HDFS内部的认证机制

前言 数据的安全性是一直被大家所重视的.对于一个存有大规模数据量的成熟企业来说,如何做到数据不丢失,不损坏,不窃取就显得格外重要了.而HDFS恰恰满足了"海量数据规模"的特点,所以如果我们用HDFS存储大量的非结构化的数据,我们如何保证其中数据的安全性呢?在之前的文章中,有提到过一个"Encryption Zone"数据加密空间的概念.Encryption Zone可以保证用户在指定的加密空间路径下,数据是被加/解密的,而且对于用户来说完全透明.详细信息可点击HDF

PAM认证机制

PAM:Pluggable Authentication Modules 认证库:文本文件,MySQL,NIS,LDAP等 PAM 是关注如何为服务验证用户的API,通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开 使得系统管理员可以灵活地根据需要给不同的服务配置不 同的认证方式而无需更改服务程序 它提供了对所有服务进行认证的中央机制,适用于login,远 程登录(telnet,rlogin,fsh,ftp,点对点协议(PPP)),su等 应用程序中.系统管理员通

基于Token的WEB后台认证机制

几种常用的认证机制 HTTP Basic Auth HTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和password,简言之,Basic Auth是配合RESTful API 使用的最简单的认证方式,只需提供用户名密码即可,但由于有把用户名密码暴露给第三方客户端的风险,在生产环境下被使用的越来越少.因此,在开发对外开放的RESTful API时,尽量避免采用HTTP Basic Auth OAuth OAuth(开放授权)是一个开放的授权标准,允许用户让

web安全认证机制知多少

如今web服务随处可见,成千上万的web程序被部署到公网上供用户访问,有些系统只针对指定用户开放,属于安全级别较高的web应用,他们需要有一种认证机制以保护系统资源的安全,本文将探讨五种常用的认证机制及优缺点. Basic模式 HTTP协议规范中有两种认证方式,一种是Basic认证,另外一种是Digest认证,这两种方式都属于无状态认证方式,所谓无状态即服务端都不会在会话中记录相关信息,客户端每次访问都需要将用户名和密码放置报文一同发送给服务端,但这并不表示你在浏览器中每次访问都要自己输入用户名

CAS 实现单点登录(SSO)数据库查询认证机制-xml方式(三)

继前面介绍过基于CAS实现单点登录(SSO)的实例演示,演示过程中服务端认证机制采用的是默认配置即CAS Servier默认用户名和密码一致即可登录成功,那么本文将侧重于应用方面,真正通过查询用户名密码来进程验证用户是否可以登录. CAS Server添加相关的jar包 需要在web项目的lib下添加两个包:cas-server-support-jdbc-x.x.x.jar和 mysql-connector-java-x.x.x-bin.jar(具体版本号根据情况而定) 修改CAS Server