elasticsearch httpclient認證機制

最近公司單位搬遷,全部的服務都中止了,我負責的elasticsearch不知道怎麼回事,一直不能運行呢,所以,我一直在負責調試工做。通過兩天的調試工做,我發現新的服務器增長了httpclient認證機制,通過幾回研究,發現服務器的新增了以下內容:緩存

 http.basic.log: false
 http.basic.user: "hett"
 http.basic.password: "****"服務器

所以,每次在進行ik拆分詞的時候會有提示信息就是:http沒有認證,所以,在加載http連接之間加入提早認證機制,在初始化bean的時候就開始認證,代碼作以下修改:elasticsearch

public class ElasticsearchServiceImpl implements IElasticsearchService , InitializingBeanide

改類繼承初始化bean的認證debug


實現父類的方法:調試

     @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);
        }
    }blog

再次訪問的時候提示以下:繼承

 

debug拋出的信息是認證經過get

通過幾天的折騰終於完成了搜索標籤的之類的服務啦
好開心啊it

相關文章
相關標籤/搜索