Files
Bridge-and-Join-s/internal/lkgateway/addiscover_live_test.go
T
zuevav 773fa8e0bf Мастер: шапка на месте; домен — только логин и пароль; модуль «1С: база мидл-офиса» (тест)
- Шапка мастера: правый блок (шлюз НРД, пользователь, тема) снова справа — после правила [hidden] скрытое меню перестало его распирать.
- Домен в шаге «Учётные записи»: bj сам находит домен и контроллеры (логин с @домен, домены поиска DNS, rootDSE DNS-серверов, SRV _ldap._tcp.dc._msdcs); адрес и домен — в расширенных настройках, открываются сами, если не нашлось. Контроллеры по очереди, LDAPS → LDAP+StartTLS.
- Неудачная попытка ничего не теряет: введённое (и пароль) — черновиком, форма заполнена; причины словами (неизвестный ЦС, имя в сертификате, IP вместо имени, порт закрыт, нет в DNS).
- Сертификат неизвестного центра: карточка «кем выдан, отпечаток (SHA-1 как в Windows и SHA-256)» и «Доверять и подключить»; после входа bj берёт из домена сертификат центра (AIA / Certification Authorities), подписавший сертификат контроллера, — подходят все контроллеры. То же в Настройка → Пользователи при «Проверить».
- Лицензия: модуль onec-middle «1С: база мидл-офиса (тест)»; раздел настроек — адрес публикации, пользователь, пароль, проверка через OData $metadata; в мастере — в «Модулях».
- ЛК (callback, API, готовность) — только при модуле «ЕСИА Финанс»; карточка режима QUIK и стили настроек как в мастере.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
2026-10-07 01:03:16 +03:00

45 lines
1.2 KiB
Go

package lkgateway
import (
"context"
"os"
"testing"
)
// BJ_AD_LIVE=1 go test -run TestADDiscoverLive — поиск домена в настоящей сети (только DNS и rootDSE, без паролей).
func TestADDiscoverLive(t *testing.T) {
if os.Getenv("BJ_AD_LIVE") == "" {
t.Skip("BJ_AD_LIVE не задан")
}
f := adDiscover(context.Background(), "")
if f == nil {
t.Fatal("домен не найден")
}
t.Logf("домен %s (%s), контроллеры %v", f.Domain, f.From, f.DCs)
}
func TestADCertLive(t *testing.T) {
if os.Getenv("BJ_AD_LIVE") == "" {
t.Skip("BJ_AD_LIVE не задан")
}
for _, dc := range []string{"dc1.corp.fontvielle.ru", "dc2.corp.fontvielle.ru"} {
a := AuthSettings{ADServer: "ldaps://" + dc, ADDomain: "corp.fontvielle.ru"}
_, err := adProbe(a)
c, ferr := adFetchCert(a)
if c != nil {
t.Logf("%s: probe=%v; cert %q от %q до %s CA=%v", dc, err, c.Subject, c.Issuer, c.Until, c.IsCA)
} else {
t.Logf("%s: probe=%v fetch=%v", dc, err, ferr)
}
if err != nil {
t.Logf(" объяснение: %s", adExplain(err, a, c))
}
if c != nil {
b := a
b.ADCAPEM = c.PEM
_, err2 := adProbe(b)
t.Logf(" после «Доверять»: probe=%v", err2)
}
}
}