java kerberos配置_kafka-producer kerberos 原理和配置

kerberos简单介绍

kerberos这一名词来源于希腊神话“三个头的狗---地狱之门守护者”后来沿用作为安全认证的概念,该系统设计上

采用客户端/服务器结构与DES(Data Encryption Standard标准加密技术),AES(Advanced Encryption Standerd

高级加密技术)等加密技术,并且能够进行相互认证,即客户端和服务端均可对对方进行身份认证。可以防止窃听、

防止replay攻击、保护数据完整性等场合,是一种应对对称密钥体制进行密钥管理的系统。

基本概念

票据授权票(TGT Ticket Granting):

用于应用程序与KDC(Key Distribution Center 密钥分发中心)服务器建立安全会话的票据,票据授权票存在有效期,

当票据授权票失效后,应用侧需要重新建立与KDC服务器的安全会话。会话有效期为24小时,不可配置。

服务票据(ST Service Ticket):

用于应用程序与服务端建立安全会话的票据,服务票据存在有效期,当服务票据失效后,应用侧需要重新建立于

服务端的安全会话。默认有效期5分钟,不可配置。

kafka kerberos 配置

详见网络说明在这里不再赘述:http://orchome.com/500

kafka kerberos producer客户端配置

1)使用配置文件kafka-console-producer.sh生产数据

cat kafka_client_jaas.conf 文件配置

KafkaClient {

com.sun.security.auth.module.Krb5LoginModule required

useTicketCache=false

useKeyTab=true

keyTab="/hbase/test.keytab"

principal="test@KERBEROS.TEST"

serviceName="kafka"

Client=true;

};

配置环境变量KAFKA_OPTS 举例说明

export KAFKA_OPTS="-Djava.security.krb5.conf=/etc/krb5.conf -Djava.security.auth.login.config=/kafka_client_jaas_acl.conf"

cat producer.properties

security.protocol=SASL_PLAINTEXT

sasl.mechanism=GSSAPI

sasl.kerberos.service.name=kafka

生产脚本kafka-console-producer.sh

./kafka-console-producer.sh --broker-list hostname:9092 --topic TEST_ACL1 --producer.config producer.properties

kafka kerberos producer客户端JAVA代码设置

import org.apache.kafka.clients.producer.*;

import java.util.Properties;

/**

* Created by Administrator on 2018-05-24.

*/

public class mykafkaprocucerwithkerberos {

private static final String BROKER_LIST = "127.0.0.1:9093";

public static void main(String[] args) throws InterruptedException {

String rootPath = System.getProperty("user.dir");

System.setProperty("java.security.krb5.conf", rootPath + "/src/main/resources/krb5.conf");

System.setProperty("java.security.auth.login.config",rootPath + "/src/main/resources/kafka_client_jaas.conf");

Properties props1 = new Properties();

Producer producer1=null;

props1.put("bootstrap.servers", BROKER_LIST);

props1.put("security.protocol","SASL_PLAINTEXT");

props1.put("sasl.mechanism","GSSAPI");

props1.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");

props1.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

producer1= new KafkaProducer(props1);

int line = 1;

while (line <=4) {

ProducerRecord message1= new ProducerRecord("TEST_ACL1","TEST_TOPIC_DATA");

producer1.send(message1, new Callback() {

public void onCompletion(RecordMetadata recordMetadata, Exception e) {

if( e!=null){

e.printStackTrace();

System.out.println("failed");

}else {

System.out.println(recordMetadata.topic());

}

}

});

line++;

}

producer1.close();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值