我开发了一个 REST 服务,可以从内容引擎存储中检索数据。为简单起见,我创建了具有只读权限的用户帐户并将其用于 CE 授权,使用以下代码:
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 服务器上测试了我的服务,一切正常。现在我已经在 ContentEngine 所在的 Websphere Application Server 上部署了该服务,当我尝试访问我的 REST 服务时,出现以下异常:
错误 500:org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常是 com.filenet.api.exception.EngineRuntimeException: FNRCS0005E: SECURITY_INVALID_CREDENTIALS: 不允许访问内容引擎,因为内容引擎 API 库或 Web 服务接口 (WSI) 侦听器找不到所需的安全上下文信息。在安全上下文中找不到预期的凭据。
WAS 是否需要任何额外的配置才能使这种方法起作用?或者也许存在解决授权问题的更好方法?