2013-03-14 4 views
3

Я разработал службу 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, чтобы этот подход работал? Или, может быть, существует лучший подход для решения проблемы авторизации?

ответ

4

Мне удалось решить эту проблему, используя разные строфы. Тот, который я использовал (FileNetP8, по умолчанию) по какой-то причине отлично работал с Tomcat, но имел проблемы с Websphere Application Server. В конфигурации входа в систему WAS я нашел FileNetP8WSI stanza, который сделал трюк.

+0

Правильная строфа - это просто строковый параметр, используйте «FileNetP8WSI» вместо null: UserContext.createSubject (conn, «user», «password», «FileNetP8WSI») –

0

Я использую почти точно такой же код, чтобы успешно подключиться к CE через WebSphere, но я использую пустую строфу

Subject subject = UserContext.createSubject(connection, username, password, null); 

ли это иметь значение для вас?

+0

На самом деле, когда мы используем значение NULL stanza, оно заменяется значением по умолчанию, которое является «FileNetP8». Итак, к сожалению, это не – koss