3

コンテンツ エンジン ストレージからデータを取得する 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: Content Engine API ライブラリーまたは Web サービス・インターフェース (WSI) リスナーが必要なセキュリティー・コンテキスト情報を見つけられなかったため、Content Engine へのアクセスは許可されませんでした。予期された資格情報がセキュリティ コンテキストで見つかりませんでした。

このアプローチを機能させるには、WAS に追加の構成が必要ですか? それとも、承認の問題に対処するためのより良いアプローチが存在するのでしょうか?

4

2 に答える 2

4

別のスタンザを使用して、その問題を解決することができました。私が使用したもの ( FileNetP8、デフォルト) は、何らかの理由で Tomcat では完全に機能しましたが、Websphere Application Server では問題がありました。WAS セキュリティー・ログイン構成で、このトリックを実行するFileNetP8WSIスタンザを見つけました。

于 2013-03-15T08:48:30.300 に答える
0

WebSphere 経由で CE に正常に接続するためにほぼ同じコードを使用しますが、null スタンザを使用します。

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

それはあなたにとって違いがありますか?

于 2013-03-15T04:33:03.033 に答える