Я разработал службу REST, которая извлекает данные из хранилища движка содержимого. Для простоты я создал учетную запись пользователя с правами только для чтения, и использовал его для авторизации CE, используя следующий код:Исключение учетных данных при запуске веб-приложения на основе Filenet на сервере приложений Websphere
UserContext context = UserContext.get();
Connection connection = Factory.Connection.getConnection("connection.url");
Subject subject = UserContext.createSubject(connection, "connection.username", "connection.password", "connection.stanza");
context.pushSubject(subject);
В процессе разработки я тестировал мою службу на локальном сервере Tomcat и все работало нормально. Теперь я развертывается эту услугу на WebSphere Application Server, где находится ContentEngine и когда я пытаюсь получить доступ к моей службы REST я получаю следующее исключение:
Ошибка 500: org.springframework.web.util.NestedServletException: Запрос обработка завершилась неудачно; Вложенное исключение - com.filenet.api.exception.EngineRuntimeException: FNRCS0005E: SECURITY_INVALID_CREDENTIALS: доступ к Content Engine не был разрешен, потому что библиотека API Content Engine или прослушиватель веб-сервиса (WSI) не смогли найти необходимую информацию контекста безопасности. Ожидаемые учетные данные не были найдены в контексте безопасности.
Требуется ли дополнительная настройка для WAS, чтобы этот подход работал? Или, может быть, существует лучший подход для решения проблемы авторизации?
Правильная строфа - это просто строковый параметр, используйте «FileNetP8WSI» вместо null: UserContext.createSubject (conn, «user», «password», «FileNetP8WSI») –