|
@@ -30,7 +30,7 @@ export default function DatasourceAdd({
|
|
|
// 是否开启kerbsValid验证
|
|
|
const [kerbsValid, setKerbsValid] = useState(KERBS_VALID_FALSE)
|
|
|
const [kerberosServiceName, setKerberosServiceName] = useState('')
|
|
|
- const [principal, setPrincipal] = useState(KERBS_VALID_FALSE)
|
|
|
+ const [principal, setPrincipal] = useState('')
|
|
|
// Loading状态
|
|
|
const [loading, setLoading] = useState(false)
|
|
|
|
|
@@ -58,14 +58,12 @@ export default function DatasourceAdd({
|
|
|
setDataType(ds_info.datasource)
|
|
|
setKerbsValid(ds_info.kerberos === 1)
|
|
|
setUseSSL(ds_info.use_ssl === 1)
|
|
|
- if (ds_info.kerberos) {
|
|
|
- setKeytabFile([])
|
|
|
- setKrb5File([])
|
|
|
- setKeytabUrl(ds_info.keytab)
|
|
|
- setKrb5Url(ds_info.krb5config)
|
|
|
- setKerberosServiceName(ds_info.kerberos_service_name)
|
|
|
- setPrincipal(ds_info.principal)
|
|
|
- }
|
|
|
+ setKeytabFile([])
|
|
|
+ setKrb5File([])
|
|
|
+ setKeytabUrl(ds_info.keytab)
|
|
|
+ setKrb5Url(ds_info.krb5config)
|
|
|
+ setKerberosServiceName(ds_info.kerberos_service_name)
|
|
|
+ setPrincipal(ds_info.principal)
|
|
|
}
|
|
|
// 测试连接
|
|
|
const testConnect = async () => {
|
|
@@ -95,7 +93,6 @@ export default function DatasourceAdd({
|
|
|
if (kerbsValid) {
|
|
|
let keytab = keytabUrl
|
|
|
let krb5config = krb5Url
|
|
|
- console.log(keytab, krb5config)
|
|
|
if (keytabFile && keytabFile.length) {
|
|
|
keytab = await uploadKerbFile(keytabFile)
|
|
|
}
|
|
@@ -106,18 +103,51 @@ export default function DatasourceAdd({
|
|
|
params['krb5config'] = krb5config
|
|
|
params['kerberos_service_name'] = kerberosServiceName
|
|
|
params['principal'] = principal
|
|
|
- }
|
|
|
- const { data } = await testDataSourceConnection(params)
|
|
|
- if (data.data) {
|
|
|
- message.success('连接成功')
|
|
|
+ if (checkKrb(keytab, krb5config, kerberosServiceName, principal)) {
|
|
|
+ const { data } = await testDataSourceConnection(params)
|
|
|
+ if (data.data) {
|
|
|
+ message.success('连接成功')
|
|
|
+ } else {
|
|
|
+ message.error(data.msg)
|
|
|
+ }
|
|
|
+ }
|
|
|
} else {
|
|
|
- message.error('连接失败')
|
|
|
+ const { data } = await testDataSourceConnection(params)
|
|
|
+ if (data.data) {
|
|
|
+ message.success('连接成功')
|
|
|
+ } else {
|
|
|
+ message.error(data.msg)
|
|
|
+ }
|
|
|
}
|
|
|
} catch (error) {
|
|
|
message.error('表单验证错误,请检查表单信息是否完整')
|
|
|
}
|
|
|
setLoading(false)
|
|
|
}
|
|
|
+ // 校验krb
|
|
|
+ const checkKrb = (keytab, krb5config, kerberos_service_name, principal) => {
|
|
|
+ if (keytab) {
|
|
|
+ if (krb5config) {
|
|
|
+ if (kerberos_service_name) {
|
|
|
+ if (principal) {
|
|
|
+ return true
|
|
|
+ } else {
|
|
|
+ message.error('缺少principal')
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ message.error('缺少kerberos_service_name')
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ message.error('缺少krb5config')
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ message.error('缺少keytab')
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ }
|
|
|
// 完成添加
|
|
|
const finishAdd = () => {
|
|
|
form
|
|
@@ -145,6 +175,22 @@ export default function DatasourceAdd({
|
|
|
params['krb5config'] = krb5config
|
|
|
params['kerberos_service_name'] = kerberosServiceName
|
|
|
params['principal'] = principal
|
|
|
+ if (checkKrb(keytab, krb5config, kerberosServiceName, principal)) {
|
|
|
+ const { data } = await testDataSourceConnection(params)
|
|
|
+ if (data.data) {
|
|
|
+ message.success('连接成功')
|
|
|
+ } else {
|
|
|
+ message.error(data.msg)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ const { data } = await testDataSourceConnection(params)
|
|
|
+ if (data.data) {
|
|
|
+ message.success('添加成功')
|
|
|
+ updateDataSource()
|
|
|
+ } else {
|
|
|
+ message.error(data.msg)
|
|
|
+ }
|
|
|
}
|
|
|
const { data } = await updateDataSourceInfo(ds_id, params)
|
|
|
if (data.code === 200) {
|