2

Spring MVC と JSP を使用して、単純な Google App Engine Web アプリケーションを作成しました。このアプリは、管理者ユーザーのみがアクセスできるように構成されています。

<security-constraint>
   <web-resource-collection>
       <url-pattern>/*</url-pattern>
       <http-method>GET</http-method>
       <http-method>POST</http-method>
   </web-resource-collection>
   <auth-constraint>
       <role-name>admin</role-name>
   </auth-constraint>
   <user-data-constraint>
       <transport-guarantee>CONFIDENTIAL</transport-guarantee>
   </user-data-constraint>
</security-constraint>

また、Web コントローラーで定義されたいくつかの安らかな Web サービス メソッドも含まれています。これらのメソッドのクライアントは、Spring Rest テンプレートを使用した Java アプリまたは Web ベースのクライアントである可能性があります。

RESTful Web サービスはステートレスであるため、クライアントから送信されたすべての http リクエストを GAE に対して認証するにはどうすればよいですか。

私が現在直面している問題は、すべてのリクエストに対して返される http レスポンスに Google ログイン ページのコンテンツが含まれていることです。

4

1 に答える 1

4

Google は、 Google Cloud Endpointsを使用してこれを行うためのフレームワークを提供しています。特に、 Using auth with endpointsに関するセクションを確認する必要があります。

GCE が適合しない要件がある場合 (そして、Spring を使用しているようです)、Spring には、目標を達成するために使用できる優れた OAuth プロジェクトがあります。 Spring セキュリティ OAuth

ただし、OAuth の実装は比較的集中的なタスクになる可能性があることに注意してください。要件と対象者によっては、より簡単で潜在的に安全性の低いソリューションまたは標準的なソリューションに落ち着くことができる場合があります。Amazon の API は、独自の API を保護する方法のアイデアを提供することもあります。

「その他の」あまり推奨されないソリューションの例として、各リクエストでヘッダー値を設定し、それがサーバーで受け入れられた値のリストと一致することを確認できる場合があります。または、API をステートフルにし、最初の呼び出しでログインを使用してから、残りの呼び出しにセッションを渡すこともできます。

最終的なソリューションは、正確な要件に依存する可能性が最も高いです。

于 2013-07-08T19:44:19.230 に答える