2016-07-01 6 views
0

Tomcat-7インスタンスでは、ApplicationA、ApplicationB、およびSSO vavleが有効になっています。両方のアプリケーションはサーブレットベースで、フォームセキュリティメソッドで保護されています。 Webブラウザを使用すると、SSOは意図したとおりに動作します。初めてApplicationAを開くと、ユーザー名とログインの入力を求められます。私はログインフォームを渡した後、私はログインするように頼まらずにApplicatioBにアクセスできます。SSO認証を取得するためのHttpUrlConnection

ここでは、ApplicationAはApplicationBからコンテンツを要求する必要があります。そこでWebブラウザでApplicationAを開き、ログインフォームにログインとパスワードを入力します。その後、ApplicationAはApplicationBのHttpUrlConntectionを作成してコンテンツを取得しますが、認証されていない新しい要求であるため、ApplicationBのログインフォームのみを取得します。 ブラウザでSSOにログインしたため、ApplicationBからログインフォームなしでApplicationAからのプログラムによるリクエストにアクセスすることが期待されます。

また、ApplicationBのコンテンツがApplicationAのStringとして必要なので、私はrequestDispatcher.include()を使用していません。

可能ですか? ありがとうございます。

私が試みたのは、conn.setRequestProperty()経由でブラウザリクエストからHttpUrlConnectionへのすべてのCookie(JSESSIONIDとJSESSIONIDSSOのようなものがあります)とヘッダーを設定することでしたが、運はありません。

答えて

1

シングルサインオンを実施するには、異なるクライアントからではなく、同じクライアントからアプリケーションにアクセスする必要があります。

Tomcatによって両方のアプリケーションでSSOが有効になっていますが、Webブラウザクライアントに似た新しいクライアントとして動作するApplicationA内のHttpUrlConnection経由でApplicationBにアクセスしているため、これはできません。

また、HttpUrlConnectionクライアントセッションでのWebブラウザクライアントセッションのCookieとヘッダーの設定は、HTTP接続がさまざまなクライアントから行われているため、Tomcatでは受け入れられません。

関連する問題