[Enhancement] sasl enable kerberos support (#32483)
Signed-off-by: Kevin Xiaohua Cai <caixiaohua@starrocks.com> Co-authored-by: Your Name <you@example.com>
This commit is contained in:
parent
4c889fe4c2
commit
025921a93d
|
|
@ -280,6 +280,21 @@ set_target_properties(brpc PROPERTIES IMPORTED_LOCATION ${THIRDPARTY_DIR}/lib64/
|
|||
add_library(rocksdb STATIC IMPORTED GLOBAL)
|
||||
set_target_properties(rocksdb PROPERTIES IMPORTED_LOCATION ${THIRDPARTY_DIR}/lib/librocksdb.a)
|
||||
|
||||
add_library(krb5support STATIC IMPORTED)
|
||||
set_target_properties(krb5support PROPERTIES IMPORTED_LOCATION ${THIRDPARTY_DIR}/lib/libkrb5support.a)
|
||||
|
||||
add_library(krb5 STATIC IMPORTED)
|
||||
set_target_properties(krb5 PROPERTIES IMPORTED_LOCATION ${THIRDPARTY_DIR}/lib/libkrb5.a)
|
||||
|
||||
add_library(com_err STATIC IMPORTED)
|
||||
set_target_properties(com_err PROPERTIES IMPORTED_LOCATION ${THIRDPARTY_DIR}/lib/libcom_err.a)
|
||||
|
||||
add_library(k5crypto STATIC IMPORTED)
|
||||
set_target_properties(k5crypto PROPERTIES IMPORTED_LOCATION ${THIRDPARTY_DIR}/lib/libk5crypto.a)
|
||||
|
||||
add_library(gssapi_krb5 STATIC IMPORTED)
|
||||
set_target_properties(gssapi_krb5 PROPERTIES IMPORTED_LOCATION ${THIRDPARTY_DIR}/lib/libgssapi_krb5.a)
|
||||
|
||||
add_library(sasl STATIC IMPORTED GLOBAL)
|
||||
set_target_properties(sasl PROPERTIES IMPORTED_LOCATION ${THIRDPARTY_DIR}/lib/libsasl2.a)
|
||||
|
||||
|
|
@ -847,6 +862,11 @@ set(STARROCKS_DEPENDENCIES
|
|||
hyperscan
|
||||
simdjson
|
||||
sasl
|
||||
gssapi_krb5
|
||||
krb5
|
||||
krb5support
|
||||
k5crypto
|
||||
com_err
|
||||
librdkafka_cpp
|
||||
librdkafka
|
||||
libpulsar
|
||||
|
|
@ -898,6 +918,7 @@ set(STARROCKS_LINK_LIBS ${STARROCKS_LINK_LIBS}
|
|||
${STARROCKS_DEPENDENCIES}
|
||||
-static-libstdc++
|
||||
-static-libgcc
|
||||
-lresolv
|
||||
)
|
||||
|
||||
# Add sanitize static link flags or jemalloc
|
||||
|
|
|
|||
|
|
@ -566,11 +566,21 @@ build_rocksdb() {
|
|||
cp -r include/rocksdb $TP_INCLUDE_DIR
|
||||
}
|
||||
|
||||
# kerberos
|
||||
build_kerberos() {
|
||||
check_if_source_exist $KRB5_SOURCE
|
||||
cd $TP_SOURCE_DIR/$KRB5_SOURCE/src
|
||||
CFLAGS="-fcommon" LDFLAGS="-L$TP_INSTALL_DIR/lib -pthread -ldl" \
|
||||
./configure --prefix=$TP_INSTALL_DIR --enable-static --disable-shared --with-spake-openssl=$TP_INSTALL_DIR
|
||||
make -j$PARALLEL
|
||||
make install
|
||||
}
|
||||
|
||||
# sasl
|
||||
build_sasl() {
|
||||
check_if_source_exist $SASL_SOURCE
|
||||
cd $TP_SOURCE_DIR/$SASL_SOURCE
|
||||
CFLAGS= ./autogen.sh --prefix=$TP_INSTALL_DIR --enable-gssapi=no --enable-static=yes --enable-shared=no --with-openssl=$TP_INSTALL_DIR
|
||||
CFLAGS= LDFLAGS="-L$TP_INSTALL_DIR/lib -lresolv -pthread -ldl" ./autogen.sh --prefix=$TP_INSTALL_DIR --enable-gssapi=yes --enable-static --disable-shared --with-openssl=$TP_INSTALL_DIR --with-gss_impl=mit
|
||||
make -j$PARALLEL
|
||||
make install
|
||||
}
|
||||
|
|
@ -1236,6 +1246,7 @@ build_thrift
|
|||
build_leveldb
|
||||
build_brpc
|
||||
build_rocksdb
|
||||
build_kerberos
|
||||
build_sasl
|
||||
build_librdkafka
|
||||
build_flatbuffers
|
||||
|
|
|
|||
|
|
@ -477,6 +477,15 @@ fi
|
|||
echo "Finished patching $SERDES_SOURCE"
|
||||
cd -
|
||||
|
||||
# patch sasl2
|
||||
cd $TP_SOURCE_DIR/$SASL_SOURCE
|
||||
if [ ! -f $PATCHED_MARK ] && [ $SASL_SOURCE = "cyrus-sasl-2.1.28" ]; then
|
||||
patch -p1 < $TP_PATCH_DIR/sasl2-add-k5support-link.patch
|
||||
touch $PATCHED_MARK
|
||||
fi
|
||||
echo "Finished patching $SASL_SOURCE"
|
||||
cd -
|
||||
|
||||
# patch arrow
|
||||
if [[ -d $TP_SOURCE_DIR/$ARROW_SOURCE ]] ; then
|
||||
cd $TP_SOURCE_DIR/$ARROW_SOURCE
|
||||
|
|
|
|||
|
|
@ -0,0 +1,42 @@
|
|||
diff --git a/Makefile.am b/Makefile.am
|
||||
index f7d3b22e..b5a622aa 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -65,7 +65,7 @@ else
|
||||
INSTALLOSX =
|
||||
endif
|
||||
|
||||
-SUBDIRS=include sasldb common lib plugins utils $(PWC) $(SAM) $(SAD)
|
||||
+SUBDIRS=include sasldb common lib plugins $(PWC) $(SAM) $(SAD)
|
||||
EXTRA_DIST=config doc docsrc win32 mac dlcompat-20010505 NTMakefile \
|
||||
INSTALL.TXT libsasl2.pc.in
|
||||
|
||||
diff --git a/m4/sasl2.m4 b/m4/sasl2.m4
|
||||
index 80371ef0..dd4e12e1 100644
|
||||
--- a/m4/sasl2.m4
|
||||
+++ b/m4/sasl2.m4
|
||||
@@ -116,9 +116,12 @@ if test "$gssapi" != no; then
|
||||
fi
|
||||
|
||||
if test "$gss_impl" = "auto" -o "$gss_impl" = "mit"; then
|
||||
+ # check for libkrb5support first
|
||||
+ AC_CHECK_LIB(krb5support,krb5int_getspecific,K5SUP=-lkrb5support K5SUPSTATIC=$gssapi_dir/libkrb5support.a,,${LIB_SOCKET})
|
||||
+
|
||||
gss_failed=0
|
||||
AC_CHECK_LIB(gssapi_krb5,gss_unwrap,gss_impl="mit",gss_failed=1,
|
||||
- ${GSSAPIBASE_LIBS} -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err ${LIB_SOCKET})
|
||||
+ ${GSSAPIBASE_LIBS} -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err ${K5SUP} ${LIB_SOCKET})
|
||||
if test "$gss_impl" != "auto" -a "$gss_failed" = "1"; then
|
||||
gss_impl="failed"
|
||||
fi
|
||||
@@ -170,8 +173,8 @@ if test "$gssapi" != no; then
|
||||
fi
|
||||
|
||||
if test "$gss_impl" = "mit"; then
|
||||
- GSSAPIBASE_LIBS="$GSSAPIBASE_LIBS -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err"
|
||||
- GSSAPIBASE_STATIC_LIBS="$GSSAPIBASE_LIBS $gssapi_dir/libgssapi_krb5.a $gssapi_dir/libkrb5.a $gssapi_dir/libk5crypto.a $gssapi_dir/libcom_err.a"
|
||||
+ GSSAPIBASE_LIBS="$GSSAPIBASE_LIBS -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err ${K5SUP}"
|
||||
+ GSSAPIBASE_STATIC_LIBS="$GSSAPIBASE_LIBS $gssapi_dir/libgssapi_krb5.a $gssapi_dir/libkrb5.a $gssapi_dir/libk5crypto.a $gssapi_dir/libcom_err.a ${K5SUPSTATIC}"
|
||||
elif test "$gss_impl" = "heimdal"; then
|
||||
CPPFLAGS="$CPPFLAGS"
|
||||
GSSAPIBASE_LIBS="$GSSAPIBASE_LIBS -lgssapi -lkrb5 -lasn1 -lroken ${LIB_CRYPT} ${LIB_DES} -lcom_err"
|
||||
|
|
@ -210,6 +210,12 @@ SASL_NAME=cyrus-sasl-2.1.28.tar.gz
|
|||
SASL_SOURCE=cyrus-sasl-2.1.28
|
||||
SASL_MD5SUM="7dcf3919b3085a1d09576438171bda91"
|
||||
|
||||
# kerberos MIT
|
||||
KRB5_DOWNLOAD="https://kerberos.org/dist/krb5/1.19/krb5-1.19.4.tar.gz"
|
||||
KRB5_NAME=krb5-1.19.4.tar.gz
|
||||
KRB5_SOURCE=krb5-1.19.4
|
||||
KRB5_MD5SUM="ef76083e58f8c49066180642d7c2814a"
|
||||
|
||||
# librdkafka
|
||||
LIBRDKAFKA_DOWNLOAD="https://github.com/confluentinc/librdkafka/archive/refs/tags/v2.0.2.tar.gz"
|
||||
LIBRDKAFKA_NAME=librdkafka-2.0.2.tar.gz
|
||||
|
|
@ -405,7 +411,7 @@ LLVM_MD5SUM="dc13938a604f70379d3b38d09031de98"
|
|||
|
||||
# all thirdparties which need to be downloaded is set in array TP_ARCHIVES
|
||||
TP_ARCHIVES="LIBEVENT OPENSSL THRIFT PROTOBUF GFLAGS GLOG GTEST RAPIDJSON SIMDJSON SNAPPY GPERFTOOLS ZLIB LZ4 BZIP CURL \
|
||||
RE2 BOOST LEVELDB BRPC ROCKSDB SASL LIBRDKAFKA PULSAR FLATBUFFERS ARROW BROTLI ZSTD S2 BITSHUFFLE CROARINGBITMAP \
|
||||
RE2 BOOST LEVELDB BRPC ROCKSDB KRB5 SASL LIBRDKAFKA PULSAR FLATBUFFERS ARROW BROTLI ZSTD S2 BITSHUFFLE CROARINGBITMAP \
|
||||
JEMALLOC CCTZ FMT RYU BREAK_PAD HADOOP JDK RAGEL HYPERSCAN MARIADB JINDOSDK AWS_SDK_CPP VPACK OPENTELEMETRY \
|
||||
BENCHMARK FAST_FLOAT CACHELIB STARCACHE STREAMVBYTE JANSSON AVRO SERDES GCS_CONNECTOR LZO2 DATASKETCHES \
|
||||
ASYNC_PROFILER FIU LIBDEFLATE LLVM"
|
||||
|
|
|
|||
Loading…
Reference in New Issue