ElasticSearch用Java代码调用时设置用户名和密码

ElasticSearch用Java代码调用时设置用户名和密码

@Configuration
public class ElasticSearchConfig {
//   注释的这个是不需要账号密码的版本
//    @Bean
//    public ElasticsearchClient elasticsearchClient(){
//        RestClient client = RestClient.builder(new HttpHost("localhost", 9200,"http")).build();
//        ElasticsearchTransport transport = new RestClientTransport(client,new JacksonJsonpMapper());
//        return new ElasticsearchClient(transport);
//    }
    @Bean
    public ElasticsearchClient elasticsearchClient() throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException {
        final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        credentialsProvider.setCredentials(AuthScope.ANY,
                //设置用户名密码
                new UsernamePasswordCredentials("elastic", "B-enPvkS_y+LeYCQxg4O"));

        // 创建 SSL 上下文
        SSLContextBuilder sslBuilder = SSLContexts.custom().loadTrustMaterial(null, (chain, authType) -> true);
        final SSLContext sslContext = sslBuilder.build();

        RestClientBuilder builder = RestClient.builder(new HttpHost("192.168.0.212", 9200, "https"))
                .setHttpClientConfigCallback(httpClientBuilder ->
                        httpClientBuilder
                                .setDefaultCredentialsProvider(credentialsProvider)
                                .setSSLContext(sslContext)
                                .setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE));

        RestClient client = builder.build();
        ElasticsearchTransport transport = new RestClientTransport(client, new JacksonJsonpMapper());
        return new ElasticsearchClient(transport);
    }
}

CredentialsProvider 名词解释

在编程和网络安全领域,CredentialsProvider 是一个常用的术语,特别是在需要处理身份验证和授权时。这个术语通常指的是一个软件组件或一个接口,它的作用是管理和提供用户凭据(如用户名和密码)给需要它们的服务或应用程序。

在不同的编程环境和框架中,CredentialsProvider 的具体实现可能会有所不同,但其基本目的和功能通常是相似的。以下是一些关于 CredentialsProvider 的关键点:

  1. 存储和管理凭据:CredentialsProvider 负责安全地存储和管理用户的凭据。这可能包括加密存储、凭据的检索、更新和删除。
  2. 提供凭据:当应用程序或服务需要用户凭据来进行身份验证时,CredentialsProvider 负责提供这些信息。这通常是通过一个接口或方法调用来完成的。
  3. 抽象和封装:CredentialsProvider 通过提供一个统一的接口来封装凭据的管理细节,使得开发者可以不必关注存储和保护凭据的具体细节,从而简化了代码和提高了安全性。
  4. 支持多种认证方法:在一些复杂的应用中,CredentialsProvider 可能需要支持多种类型的认证机制,如基本认证、OAuth、令牌认证等。
  5. 安全性:由于涉及敏感数据,CredentialsProvider 的实现必须高度关注安全性,确保凭据不被未经授权的访问和泄露。

在不同的编程语言和框架中,如Java、.NET、Python等,你会发现各自实现的 CredentialsProvider,它们的具体API和使用方式可能会有所不同,但其核心功能是相似的。

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

日日行不惧千万里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值