Skip to content

Commit fa54ba3

Browse files
committed
Merge branch 'feat_1.10_kuduKerberos' into '1.10_test_4.0.x'
Feat 1.10 kudu kerberos See merge request dt-insight-engine/flinkStreamSQL!163
2 parents 396b5b2 + 55bf95a commit fa54ba3

File tree

4 files changed

+14
-4
lines changed

4 files changed

+14
-4
lines changed

core/src/main/java/com/dtstack/flink/sql/util/KrbUtils.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,11 @@
2020

2121
import org.apache.hadoop.conf.Configuration;
2222
import org.apache.hadoop.security.UserGroupInformation;
23+
import org.apache.hadoop.security.authentication.util.KerberosName;
2324
import org.slf4j.Logger;
2425
import org.slf4j.LoggerFactory;
26+
import sun.security.krb5.Config;
27+
import sun.security.krb5.KrbException;
2528

2629
import java.io.IOException;
2730

@@ -40,9 +43,16 @@ public class KrbUtils {
4043
// public static final String FALSE_STR = "false";
4144
// public static final String SUBJECT_ONLY_KEY = "javax.security.auth.useSubjectCredsOnly";
4245

43-
public static UserGroupInformation getUgi(String principal, String keytabPath, String krb5confPath) throws IOException {
46+
public static UserGroupInformation loginAndReturnUgi(String principal, String keytabPath, String krb5confPath) throws IOException {
4447
LOG.info("Kerberos login with principal: {} and keytab: {}", principal, keytabPath);
4548
System.setProperty(KRB5_CONF_KEY, krb5confPath);
49+
// 不刷新会读/etc/krb5.conf
50+
try {
51+
Config.refresh();
52+
KerberosName.resetDefaultRealm();
53+
} catch (KrbException e) {
54+
LOG.warn("resetting default realm failed, current default realm will still be used.", e);
55+
}
4656
// TODO 尚未探索出此选项的意义,以后研究明白方可打开
4757
// System.setProperty(SUBJECT_ONLY_KEY, FALSE_STR);
4858
Configuration configuration = new Configuration();

kudu/kudu-side/kudu-all-side/src/main/java/com/dtstack/flink/sql/side/kudu/KuduAllReqRow.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ private KuduClient getClient(KuduSideTableInfo tableInfo) throws IOException {
227227
}
228228

229229
if (tableInfo.isEnableKrb()) {
230-
UserGroupInformation ugi = KrbUtils.getUgi(tableInfo.getPrincipal(), tableInfo.getKeytab(), tableInfo.getKrb5conf());
230+
UserGroupInformation ugi = KrbUtils.loginAndReturnUgi(tableInfo.getPrincipal(), tableInfo.getKeytab(), tableInfo.getKrb5conf());
231231
return ugi.doAs(new PrivilegedAction<KuduClient>() {
232232
@Override
233233
public KuduClient run() {

kudu/kudu-side/kudu-async-side/src/main/java/com/dtstack/flink/sql/side/kudu/KuduAsyncReqRow.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ private AsyncKuduClient getClient() throws IOException {
132132
}
133133

134134
if (kuduSideTableInfo.isEnableKrb()) {
135-
UserGroupInformation ugi = KrbUtils.getUgi(
135+
UserGroupInformation ugi = KrbUtils.loginAndReturnUgi(
136136
kuduSideTableInfo.getPrincipal(),
137137
kuduSideTableInfo.getKeytab(),
138138
kuduSideTableInfo.getKrb5conf()

kudu/kudu-sink/src/main/java/com/dtstack/flink/sql/sink/kudu/KuduOutputFormat.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ private void establishConnection() throws IOException {
116116
}
117117

118118
if (enableKrb) {
119-
UserGroupInformation ugi = KrbUtils.getUgi(
119+
UserGroupInformation ugi = KrbUtils.loginAndReturnUgi(
120120
principal,
121121
keytab,
122122
krb5conf

0 commit comments

Comments
 (0)