TFS SDK через Java не работает со служебной учетной записью в Ubuntu - PullRequest
0 голосов
/ 12 декабря 2018

Мы создали приложение Java, использующее TFS-SDK для управления исходным кодом, которое развертывается на сервере приложений Apache Tomcat.Кот выполняется / запускается через служебную учетную запись.

TFS-SDK создает дамп некоторых файлов кэша, XML-файлов в домашнем каталоге текущего пользователя.В случае Ubuntu, нет домашних каталогов для учетных записей служб.Из-за этого он выдает разрешение и клонирование кода завершается неудачей.

INFO  com.microsoft.tfs.jni.loader.NativeLoader - Loaded /opt/aaaaaa_data/TFS-SDK/linux/x86_64/libnative_misc.so from user-specified directory
2018-12-12 09:41:11.993 [pool-3-thread-1] INFO  com.microsoft.tfs.core.config.httpclient.DefaultHTTPClientFactory - HttpClient configured for https://dev.azure.com/aaaaaaaaaaa, authenticating as aaaaaaaaaaa
2018-12-12 09:41:14.910 [pool-3-thread-1] INFO  com.microsoft.tfs.core.ws.runtime.client.SOAPService - SOAP method='GetRegistrationEntries', status=302, content-length=0, server-wait=2173 ms, parse=3 ms, total=2176 ms, throughput=0 B/s, uncompressed
2018-12-12 09:41:16.548 [pool-3-thread-1] INFO  com.microsoft.tfs.core.ws.runtime.client.SOAPService - SOAP method='GetRegistrationEntries', status=200, content-length=111841, server-wait=1253 ms, parse=381 ms, total=1634 ms, throughput=68446 B/s, gzip
2018-12-12 09:41:16.565 [pool-3-thread-1] WARN  com.microsoft.tfs.core.clients.registration.ServerMap - unable to save server map to /home/aaaaaa/.microsoft/Team Foundation/4.0/Cache/TEE-Registration:server-map.xml
java.lang.RuntimeException: Error creating directories up to /home/aaaaaa/.microsoft/Team Foundation/4.0/Cache/TEE-Registration.  Possible permissions problem.
    at com.microsoft.tfs.core.persistence.FilesystemPersistenceStore.initialize(FilesystemPersistenceStore.java:98) ~[sdk-11.0.0.jar:?]
    at com.microsoft.tfs.core.persistence.FilesystemPersistenceStore.getLockInternal(FilesystemPersistenceStore.java:690) ~[sdk-11.0.0.jar:?]
    at com.microsoft.tfs.core.persistence.FilesystemPersistenceStore.getItemLock(FilesystemPersistenceStore.java:592) ~[sdk-11.0.0.jar:?]
    at com.microsoft.tfs.core.persistence.FilesystemPersistenceStore.storeItem(FilesystemPersistenceStore.java:168) ~[sdk-11.0.0.jar:?]
    at com.microsoft.tfs.core.persistence.FilesystemPersistenceStore.storeItem(FilesystemPersistenceStore.java:136) ~[sdk-11.0.0.jar:?]
    at com.microsoft.tfs.core.clients.registration.ServerMap.save(ServerMap.java:84) [sdk-11.0.0.jar:?]
    at com.microsoft.tfs.core.clients.registration.RegistrationClient.writeDiskCache(RegistrationClient.java:679) [sdk-11.0.0.jar:?]
    at com.microsoft.tfs.core.clients.registration.RegistrationClient.getRegistrationData(RegistrationClient.java:649) [sdk-11.0.0.jar:?]
    at com.microsoft.tfs.core.clients.registration.RegistrationClient.getRegistrationEntries(RegistrationClient.java:151) [sdk-11.0.0.jar:?]
    at com.microsoft.tfs.core.clients.registration.RegistrationClient.getRegistrationEntries(RegistrationClient.java:135) [sdk-11.0.0.jar:?]
    at com.microsoft.tfs.core.PreFrameworkServerDataProvider.findServiceLocation(PreFrameworkServerDataProvider.java:289) [sdk-11.0.0.jar:?]
    at com.microsoft.tfs.core.PreFrameworkServerDataProvider.locationForCurrentConnection(PreFrameworkServerDataProvider.java:264) [sdk-11.0.0.jar:?]
    at com.microsoft.tfs.core.TFSTeamProjectCollection.getServerDataProvider(TFSTeamProjectCollection.java:169) [sdk-11.0.0.jar:?]
    at com.microsoft.tfs.core.TFSConnection.ensureAuthenticated(TFSConnection.java:739) [sdk-11.0.0.jar:?]

Если мы запускаем tomcat от обычного пользователя, это работает.

Обходной путь / решение:

1)Создайте каталог «serviceAccountUser» в / home с владельцем serviceAccountUser в качестве владельца

2) Измените домашний каталог для пользователя учетной записи службы в поле / etc / passwd номер 6 (аналогично пользователю службы Jenkins)

Мне нужно знать, можем ли мы изменить временное местоположение для TFS-SDK вместо домашнего каталога из самого кода Java

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...