Мы используем Artifactory для хранения наших локальных артефактов npm, а также для кэширования удаленного реестра npm.Для аутентификации (с учетными записями AD) в Artifactory с помощью npm мы используем базовую аутентификацию, предложенную на странице «Set Me Up» из Artifactory.Например:
_auth = < username >:< password >
email = youremail@email.com
always-auth = true
Это все работает правильно, но есть одна проблема в том, что Artifactory аутентифицирует пользователя для каждого загружаемого пакета.В этом случае журнал artifactory.log выглядит следующим образом (обратите внимание, выходные данные были отредактированы):
Trying to authenticate user 'user1' via ldap.
Attempting to bind as cn=user1,ou=someou,ou=ou1,ou=ou2,ou=ou3,dc=internal,dc=comp,dc=int
Retrieving attributes...
'user1' authenticated successfully by ldap server.
Loading LDAP groups
Finished Loading LDAP groups
Trying to authenticate user 'user1' via ldap.
Trying to authenticate user 'user1' via ldap.
Trying to authenticate user 'user1' via ldap.
Trying to authenticate user 'user1' via ldap.
Trying to authenticate user 'user1' via ldap.
Trying to authenticate user 'user1' via ldap.
Trying to authenticate user 'user1' via ldap.
Trying to authenticate user 'user1' via ldap.
Trying to authenticate user 'user1' via ldap.
Trying to authenticate user 'user1' via ldap.
Trying to authenticate user 'user1' via ldap.
Attempting to bind as cn=user1,ou=someou,ou=ou1,ou=ou2,ou=ou3,dc=internal,dc=comp,dc=int
...
Как я уже говорил, аутентификация работает, и артефакт также загружается, но эта постоянная аутентификация для каждого артефакта может иногда вызыватьтайм-аут с сервером LDAP:
Failed to authenticate user 'user1' using ldap.
org.springframework.ldap.UncategorizedLdapException: Uncategorized exception occured during LDAP processing; nested exception is javax.naming.NamingException: LDAP response read timed out, timeout used:10000ms.
at org.springframework.ldap.support.LdapUtils.convertLdapException(LdapUtils.java:217)
at org.springframework.ldap.core.support.AbstractContextSource.createContext(AbstractContextSource.java:285)
at org.springframework.ldap.core.support.AbstractContextSource.doGetContext(AbstractContextSource.java:119)
at org.springframework.ldap.core.support.AbstractContextSource.getReadOnlyContext(AbstractContextSource.java:138)
at org.springframework.ldap.core.LdapTemplate.executeReadOnly(LdapTemplate.java:791)
...
Это приводит к тому, что артефакт, загружаемый в тот момент времени, не загружается, что приводит к сбою нашей сборки.
Итак, мойвопрос в том, почему это происходит, и есть ли способ избежать этого, поскольку это также создает нагрузку на наш сервер LDAP каждый раз, когда мы запускаем наши задания по сборке?