カスタム永続レイヤーを使用して、SAP Netweaver 7.3 に Orbeon 4.0 ベータ 3 をセットアップしました。
このレイヤーは、これを念頭に置いて Netweaver で作成されます : http://wiki.orbeon.com/forms/doc/developer-guide/form-runner/persistence-apiフォームとデータを保存します。バックエンドへの接続は、SAP HTTPDestination 経由で行われます。
この設定は、web.xml などで認証がオフになっている限り機能します。
次のステップは、SSO を念頭に置いてこれを有効にすることでした。同じ SSO チケットを使用して永続化レイヤーが呼び出され、ユーザーコンテキストが SAP バックエンドに渡されるようにします。
手順:
- 適切な SAP ロールとログイン スタック (チケット) を使用して、orbeon web.xml と web-j2ee-engine でセキュリティを有効にします。
- 永続化レイヤーでセキュリティを有効にする
- MYSAPSSO2 Cookie を渡すように orbeon をセットアップします (property as="xs:string" name="oxf.http.forward-cookies" value="MYSAPSSO2"/>)。
ブラウザー ウィンドウを見ると、JSESSIONID および MYSAPSSO2 Cookie が表示されます。これは、Cookie を読み取るために Orbeon の前に作成した Java フィルターによってサポートされています。Orbeon の前にあるこのフィルタは、サーブレット リクエストの Cookie[] 配列をループします。
これについて 3 つのログ レコードがあり、最初のログ レコードの JSESSION が次のようになっていることに気付きました。
Cookie: JSESSIONID 0iqTevo1vDb_lYFwTa-9CJHymaGMPAHaCk0A_SAPox1Z6aY-RvYBtiK-2U5GLmAh
次のレコードは次のようになりました。
Cookie: JSESSIONID 0iqTevo1vDb_lYFwTa-9CJHymaGMPAHaCk0A_SAP
では、最初の質問は、なぜ JSESSIONID を削除したのかということです。
percistancy レイヤーのログを見ると、このクラスはエラーを示しています。
com.sap.engine.services.security.authentication.loginmodule.ticket
Base64 Encoded Ticket String: 0iqTevo1vDb_lYFwTa-9CJHymaGMPAHaCk0A_SAP
SAP はこの短い JSESSIONID を処理できるように見えます。
ブラウザ経由のテスト:
- Orbeon フォームの URL を開く
- 表示されたログイン ページで SAP にログインします。
/rest/test
(永続層の URL) を開いて、再度ログインする必要があるかどうかを確認します
開くときにログインは不要/rest/test
で、ログインに関するエラーは ありませんcom.sap.engine.services.security.authentication.loginmodule.ticket