0

私は、Jersey RestFul Webservices で構成される Java EE ベースの Web アプリケーションに取り組んでいます。Jersey RestFul Webサービスのリクエストがどこから来たかを知ることは可能ですか?

1.リクエストはWebサービスクライアントツールからのものです (例:Google Chromes Rest Client、またはそのようなツール)

2 または、ログイン ユーザーから要求が行われます

Service クラス内では、この状態を維持しています。

// この条件は、Web サービス クライアント ツールでは正常に機能します。

HttpSession httpsession = req.getSession(false);
if(httpsession==null)
{
throw new WebApplicationException(SC_FORBIDDEN);
}

これは、サービス呼び出しへの応答として禁止された例外を単にスローする Web サービス クライアント ツールの処理には問題なく機能しますが、ログインしているユーザーがブラウザから Jsession Id Cookie を削除してから呼び出しを行う可能性があるという条件もある可能性があります。サービスの1つに、そのようなタイプのリクエストは、彼をログインページにリダイレクトしたい.

基本的に私は尋ねていましたが、リクエストがどこから行われたかを知ることは可能ですか??

4

1 に答える 1

0

REST セキュリティの問題に対処する 1 つの方法は、オープンソース プロトコル OAuth を使用することです。OAuth Web サイトで説明されているように、OAuth は「デスクトップおよび Web アプリケーションからシンプルかつ標準的な方法で安全な API 承認を可能にするオープン プロトコル」です。OAuth には、Google AuthSub、AOL OpenAuth、Yahoo BBAuth、Upcoming API、Flickr API、Amazon Web Services API など、いくつかの独自のフレームワークで採用されている共通の原則が組み込まれています。

OAuth プロトコルを使用すると、Web サイトまたはアプリケーション (サービス コンシューマーと呼ばれます) は、API を介して Web サービス (サービス プロバイダーと呼ばれます) から保護されたリソースにアクセスできます。API では、ユーザーがサービス プロバイダーの資格情報を消費者に開示する必要はありません。

于 2012-08-16T12:43:56.513 に答える