Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.54.2. gauth
gauth コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
重要
GAE コンポーネントは非推奨となり、JBoss Fuse の今後のリリースで削除される予定です。
Apache Camel 2.3 で利用可能
gauth
コンポーネントは、Google 固有の OAuth コンシューマーを実装するために Web アプリケーションによって使用されます。他の OAuth プロバイダーもサポートするように、後で拡張されます。このコンポーネントは Google App Engine (GAE)の Camel コンポーネントに属していますが、OAuth-enable 非 GAE Web アプリケーションにも使用することができます。Google の OAuth 実装の詳細については、Google OAuth API リファレンス を参照してください。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
gauth://name[?options]
gauth://name[?options]
エンドポイント
名
は、を 承認
または アップグレード
できます。承認
エンドポイントは、Google から承認されていないリクエストトークンを取得し、ユーザーを承認ページにリダイレクトするために使用されます。upgrade
エンドポイントは、Google から OAuth コールバックを処理し、承認されたリクエストトークンを有効期限の長いアクセストークンにアップグレードするために使用されます。例については、使用方法のセクション を参照してください。
オプション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
名前 | デフォルト値 | 必須 | 説明 |
---|---|---|---|
callback
|
null
|
True ( GAuthAuthorizeBinding.GAUTH_CALLBACK メッセージヘッダーで設定することもできます)
|
アクセスの許可または拒否後にユーザーをリダイレクトする URL。 |
scope
|
null
|
true ( GAuthAuthorizeBinding.GAUTH_SCOPE メッセージヘッダーで設定することもできます)
|
アクセスするサービスを識別する URL。スコープは各 Google サービスによって定義されます。正しい値については、サービスのドキュメントを参照してください。複数のスコープを指定するには、それぞれをコンマで区切って一覧表示します。例: http://www.google.com/calendar/feeds/
|
consumerKey
|
null
|
True ( コンポーネントレベルでも設定できます)。 |
Web アプリケーションを識別するドメイン。これは、アプリケーションを Google に登録する際に使用されるドメインです。例: camelcloud.appspot.com 登録されていないアプリケーションでは、匿名 を使用します。
|
consumerSecret
|
null
|
consumerSecret または keyLoaderRef のいずれかが必要です(または、コンポーネントレベルの で設定できます)。
|
Web アプリケーションのコンシューマーシークレット。コンシューマーシークレットは、アプリケーションを Google に登録する際に生成されます。HMAC-SHA1 署名方式を使用する場合は、これが必要です。登録されていないアプリケーションでは、匿名 を使用します。
|
keyLoaderRef
|
null
|
consumerSecret または keyLoaderRef のいずれかが必要です(代わりに コンポーネントレベルの に設定できます)。
|
レジストリー内の秘密鍵ローダーへの参照。camel-gae の一部は 2 つの主要なローダーです。PKCS#8 ファイルから秘密鍵を読み込む GAuthPk8Loader と、Java キーストアから秘密鍵を読み込む GAuthJksLoader です。これは、RSA-SHA1 署名メソッドを使用する場合は必要になります。これらのクラスは org.apache.camel.component.gae.auth パッケージで定義されます。
|
authorizeBindingRef
|
GAuthAuthorizeBinding への参照
|
false |
エクスチェンジ が GoogleOAuthParameters にバインドされる方法をカスタマイズするための OutboundBinding<GAuthEndpoint, GoogleOAuthParameters , GoogleOAuthParameters > への参照。このバインディングは、teh 承認フェーズに使用されます。ほとんどのアプリケーションはデフォルト値を変更しません。
|
upgradeBindingRef
|
GAuthAuthorizeBinding への参照
|
false |
レジストリーでの OutboundBinding<GAuthEndpoint、GoogleOAuthParameters、GoogleOAuthParameters > への参照。エクスチェンジ が GoogleOAuthParameters にバインドされる方法をカスタマイズするためのものです。このバインディングは、teh トークンのアップグレードフェーズに使用されます。ほとんどのアプリケーションはデフォルト値を変更しません。
|
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
名前 | タイプ | エンドポイント | メッセージ | 説明 |
---|---|---|---|---|
GAuthAuthorizeBinding.GAUTH_CALLBACK
|
文字列
|
gauth:authorize
|
in |
コールバック オプションを上書きします。
|
GAuthAuthorizeBinding.GAUTH_SCOPE
|
文字列
|
gauth:authorize
|
in |
scope オプションを上書きします。
|
GAuthUpgradeBinding.GAUTH_ACCESS_TOKEN
|
文字列
|
gauth:upgrade
|
out | 有効期間の長いアクセストークンが含まれています。このトークンは、アプリケーションによってユーザーのコンテキストに保存する必要があります。 |
GAuthUpgradeBinding.GAUTH_ACCESS_TOKEN_SECRET
|
文字列
|
gauth:upgrade
|
out | アクセストークンのシークレットが含まれます。このトークンシークレットは、アプリケーションによってユーザーのコンテキストに保存する必要があります。 |
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
gauth
コンポーネントはメッセージの本文を読み書きしません。
コンポーネントの設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
consumerKey
、consumerSecret
、keyLoader
などの一部のエンドポイントオプションは、通常 gauth:authorize
および gauth:upgrade
エンドポイントで同じ値に設定されます。gauth
コンポーネントは、コンポーネントレベルでそれらを設定できるようにします。これらの設定は gauth
エンドポイントによって継承され、エンドポイント URI で冗長的に設定する必要はありません。以下は、いくつかの設定例になります。
HMAC-SHA1 署名方法を使用した登録済み Web アプリケーションのコンポーネント設定
HMAC-SHA1 署名方法を使用した未登録の Web アプリケーションのコンポーネント設定
RSA-SHA1 署名メソッドを使用した登録済み Web アプリケーションのコンポーネント設定
使用方法 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下は、(GAE 以外の) Web アプリケーションに OAuth を追加するための最低限の設定です。以下の例では、Web アプリケーションが
gauth.example.org
で実行されていることを前提としています。
GAuthRouteBuilder.java
OAuth シーケンスは、
http://gauth.example.org/authorize
に GET リクエストを送信することでトリガーされます。その後、ユーザーは Google 承認ページにリダイレクトされます。このページへのアクセスを許可した後、Google はユーザーをコールバックを処理する Web アプリケーションにリダイレクトすると、最後に Google から有効期限の長いアクセストークンを取得します。
これら 2 つのルートは、他の Web アプリケーションフレームワークと完全に共存できます。フレームワークは、Web アプリケーション固有の機能の基盤を提供しますが、OAuth サービスプロバイダーのインテグレーションは Apache Camel で実行されます。OAuth 統合部分は、
jetty
コンポーネントの代わりにサーブレットコンポーネントを使用して、既存の サーブレット
コンテナーのリソースを使用することもできます。
OAuth アクセストークンについて
- アプリケーションは、現在のユーザーのコンテキストでアクセストークンを保存する必要があります。ユーザーが次回ログインする場合、OAuth の dance を再度実行せずに、アクセストークンをデータベースから直接読み込むことができます。
- その後、アクセストークンを使用して、ユーザーの代わりに Google カレンダー API などの Google サービスへのアクセスを取得します。Java アプリケーションは多くの場合、GData Java ライブラリー を使用する可能性が高くなります。ユーザーのカレンダーフィードを読み取るために GData Java ライブラリーでアクセストークンを使用する方法の 例 は、以下を参照してください。
- ユーザーは、Google Accounts ページからアクセストークンをいつでも取り消すことができます。この場合、対応する Google サービスにアクセスすると、承認例外が発生します。Web アプリケーションは、保存されたアクセストークンを削除し、別のトークンを作成するためにユーザーを Google 承認ページにリダイレクトする必要があります。
上記の例は、以下のコンポーネント設定に依存します。
GAE の例 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Google App Engine アプリケーションを有効にするには、ルートビルダーでいくつかの小さな変更のみが必要になります。GAE アプリケーションのホスト名が
camelcloud.appspot.com
であるとすると、設定は以下のようになります。ここでは、ghttp コンポーネントは、jetty
コンポーネントの代わりに HTTP (S)要求を処理するために使用されます。
GAuthRouteBuilder
アクセストークンの使用 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下の例は、アクセストークンを使用して、GData Java ライブラリー でユーザーの Google カレンダーデータにアクセスする方法を示しています。サンプルアプリケーションは、ユーザーのパブリックおよびプライベートカレンダーのタイトルを
stdout
に書き込みます。
アクセストークンの使用