java 访问 kerberos 认证的 kafka

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 5     <modelVersion>4.0.0</modelVersion>
 6
 7     <groupId>com.ht</groupId>
 8     <artifactId>kafkatest</artifactId>
 9     <version>1.0-SNAPSHOT</version>
10     <build>
11         <plugins>
12             <plugin>
13                 <groupId>org.apache.maven.plugins</groupId>
14                 <artifactId>maven-compiler-plugin</artifactId>
15                 <configuration>
16                     <source>1.7</source>
17                     <target>1.7</target>
18                 </configuration>
19             </plugin>
20         </plugins>
21     </build>
22
23
24     <dependencies>
25         <dependency>
26             <groupId>org.apache.kafka</groupId>
27             <artifactId>kafka-clients</artifactId>
28             <version>0.10.0.0</version>
29         </dependency>
30     </dependencies>
31 </project>

java 代码

 1 import org.apache.kafka.clients.CommonClientConfigs;
 2 import org.apache.kafka.clients.consumer.ConsumerRecord;
 3 import org.apache.kafka.clients.consumer.ConsumerRecords;
 4 import org.apache.kafka.clients.consumer.KafkaConsumer;
 5
 6 import java.util.Collections;
 7 import java.util.Properties;
 8
 9 import static org.apache.kafka.clients.consumer.ConsumerConfig.*;
10
11 /**
12  * @author sunzq
13  * @since 2017/8/29
14  */
15 public class Application {
16     public static void main(String[] args) {
17
18         Properties props = new Properties();
19         props.put(BOOTSTRAP_SERVERS_CONFIG, "node1:6667,node2:6667,node3:6667,node4:6667");
20         props.put(ENABLE_AUTO_COMMIT_CONFIG, "true");
21         props.put(GROUP_ID_CONFIG, "test08291103");
22 //      props.put(ConsumerConfig.CLIENT_ID_CONFIG, "test0829");
23         props.put(AUTO_COMMIT_INTERVAL_MS_CONFIG, 1000);
24         props.put(AUTO_OFFSET_RESET_CONFIG, "earliest");
25         props.put(KEY_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer");
26         props.put(VALUE_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer");
27         props.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "SASL_PLAINTEXT");
28
29         KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
30         // topic name: test9
31         consumer.subscribe(Collections.singleton("test9"));
32         while (true) {
33             ConsumerRecords<String, String> records = consumer.poll(100);
34             for (ConsumerRecord<String, String> record : records)
35                 System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value());
36         }
37     }
38 }

启动参数

-Djava.security.krb5.conf=c:\\app\\conf\\krb5.conf -Djava.security.auth.login.config=c:\\app\\conf\\kafka_jaas.conf

windows 下记得用 \\

时间: 2024-10-11 20:52:32

java 访问 kerberos 认证的 kafka的相关文章

如何使用Java访问双向认证的Https资源

本文的相关源码位于 https://github.com/dreamingodd/CA-generation-demo 0.Nginx配置Https双向认证 首先配置Https双向认证的服务器资源. 可以参考:http://www.cnblogs.com/dreamingodd/p/7357029.html 完成之后如下效果: 1.导入cacerts进行访问 首先将服务器证书导入keystore cacerts,默认密码为changeit,如果需要修改密码就改一下. keytool -impor

java 连接 kerberos 认证的 HBase 和 HDFS

这是两个功能,都很简单就写一块了.. 简单到什么程度呢,简单到只贴代码就可以了... HBase package com.miras.data; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.C

kafka kerberos 认证访问与非认证访问共存下的ACL问题

在一个正在运行的kafka集群中添加kerberos认证和ACL权限控制,同时保证以前所有的producer\consumer服务不中断 解决方式: 使kafka集群监听两个端口,一个为无认证连接,另一个为kerberos的认证连接 这时候在配置ACL的时候出了问题: 假如我以kerberos认证的方式连接kafka集群,那么我的用户名是principal的primary部分.例如principal是  kafka/[email protected] ,那么我的用户名就是kafka. 这时候我只

spark 2.x在windows环境使用idea本地调试启动了kerberos认证的hive

1 概述 开发调试spark程序时,因为要访问开启kerberos认证的hive/hbase/hdfs等组件,每次调试都需要打jar包,上传到服务器执行特别影响工作效率,所以调研了下如何在windows环境用idea直接跑spark任务的方法,本文旨在记录配置本地调试环境中遇到的问题及解决方案. 2 环境 Jdk 1.8.0 Spark 2.1.0 Scala 2.11.8 Hadoop 2.6.0-cdh5.12.1 Hive 1.1.0-cdh5.12.1 环境搭建略,直接看本地调试spar

图解Kerberos认证工作原理

本文是我在看了这篇英文说明之后的总结 https://technet.microsoft.com/zh-cn/library/cc961976.aspx 是总结,不是翻译,所以是我看后按自己的理解写的,如有问题,请指正! Kerberos在古希腊神话中是指:一只有三个头的狗.这条狗守护在地狱之门外,防止活人闯入.Kerberos协议以此命名,因为协议的重要组成部分也是三个:client, server, KDC(密钥分发中心). 要了解Kerberos协议的工作过程,先了解不含KDC的简单相互身

论Java访问权限控制的重要性

人在什么面前最容易失去抵抗力? 美色,算是一个,比如说西施的贡献薄就是忍辱负重.以身报国.助越灭吴:金钱,算是另外一个,我们古人常说"钱乃身外之物,生不带来死不带去",但我们又都知道"有钱能使鬼推磨". 除去美色和金钱,我认为还有一个,就是读者的认可--"二哥,你的文章真的很棒,我特别喜欢.希望能多多更新Java基础知识,真的是受益良多,就好像是在读王小波的散文,但又学了编程!"--你说,收到读者这样暖暖的评语,还需要美色和金钱?"两者

Java 访问指示符

Java 访问指示符 poublic,protected 以及 private 都置于方法或数据成员的前面.每 个访问指示符都只控制着对那个特定定义的访问 public: 用public修饰的类.类属变量及方法,包内及包外的任何类(包括子类和普通类)均可以访问: protected: 用protected修饰的类.类属变量及方法,包内的任何类及包外那些继承了该类的子类才能访问 protected 关键字为我们引入了一种名为"继承"的概念,它以现有的类为 基础,并在其中加入新的成员,同时

Java访问USB设备

最近在用Java访问RDing设备,使用的是Java HID API.使用过程中发现一个问题,由于是嵌入式小白,不知道如何向USB设备发送report.于是想到可以看看自带的软件如何访问USB的.找到了一个叫做Bus Hound的软件.非常小,但是功能很全,可以看到电脑上所有USB设备的通信信息.如下图所示.这样就可以看到控制信息和读入读出信息.

Kerberos认证协议中TGS服务器可以去掉吗?

Kerberos协议最早是由MIT提出的,是一种身份认证协议. 应用场景:在一个开放环境中,一个工作站用户想通过网络对分布在网络中的各种服务提出请求,那么希望服务器能够只对授权用户提供服务,并能够鉴别服务请求的种类. Kerberos协议的原理:Kerberos通过提供一个集中的授权服务器来负责用户对服务器的认证和服务器对用户的认证,而不是为每个服务器提供详细的认证协议. Kerberos名词: Client:用户. AS:认证服务器,可以通过查询数据库,判断用户的口令,从而为用户颁发票据授权票