4

前回の質問を書き直します。

Glassfish は、フォーム ログイン後に最後にアクセスしたリソースにリダイレクトします。これをオフにするにはどうすればよいですか?

私たちの問題は、FF と IE で 415 を取得することです。これは、JSESSION Cookie がある場合、Glassfish は最後にアクセスしようとしたリソースにリダイレクトしますが、コンテンツ タイプを (x-form-urlencoded) から切り替えないためです。

疑似例 (リクエストはブラウザの XMLHttpRequest です):

GET /secure/resouce1 (json) -> Response "you're not logged in."
GET /login.xhtml
POST /j_secure (x-form-urlencoded) -> New location /secure/resource1 (x-form-urlencoded)
GET /secure/resource1 (x-form-urlencoded) <- HTTP ERROR 415 content type not JSON.
4

3 に答える 3

0

おそらく、そのケースをチェックしてキャッチするためのFilterを作成する必要があります。私はこのチュートリアルが好きです(英語への翻訳が理解できることを願っています)。

于 2013-04-22T07:06:47.897 に答える
0

私の意見では、RESTful サービスには SSL 経由で基本認証またはダイジェスト認証を使用することをお勧めします。その他のオプションとして、資格情報をペイロードの一部として含めるか、資格情報を受け入れてトークンを返す専用のログイン サービスを作成します。フォーム ベースの認証が RESTful サービスに適していない理由はさまざまです。セッションが必要である、既存の HTTP 承認を使用しないなどです。
AJAX を使用して RESTful サービスを呼び出す必要がある場合は、認証に Cookie を使用することが有効なソリューションになる可能性があります。ユーザーが電話をかけることができるかどうかにのみ影響し、サーバーの応答方法には影響しません。

アプリケーションで引き続きフォーム ベースの認証を使用する場合は、RESTful サービス認証を処理する JAAS 認証プロバイダーを追加することをお勧めします。詳細については、こちらをご覧ください。

JAAS よりも簡単な別のオプションは、コンテナー ベースの認証の代わりに Spring SecurityまたはApache Shiroを使用することです。Spring Security でフォームベース認証を構成する例を次に示しますこの投稿では、 Spring Security を使用してRESTful サービスを保護する方法の例を示します。

于 2013-04-23T11:28:12.143 に答える