10.2 AndroidクライアントSDKを使用した認証サービスの起動 この項では、Mobile and Socialサーバーを使用して認証する步调について説明するサンプル・コードを提供します。Mobile and Socialサーバーの構成の詳細は、『Oracle Fusion Middleware Oracle Access Management措置者ガイド』のモバイル・サービスの構成に関する項を参照してください91porn y。 手順1: OMMobileSecurityServiceオブ
この項では、Mobile and Socialサーバーを使用して認証する步调について説明するサンプル・コードを提供します。Mobile and Socialサーバーの構成の詳細は、『Oracle Fusion Middleware Oracle Access Management措置者ガイド』のモバイル・サービスの構成に関する項を参照してください91porn y。
手順1: OMMobileSecurityServiceオブジェクトの作成
次のようにMobile and Socialサーバーに関する必要な詳細情報を指定し、OMMobileSecurityServiceのオブジェクトを作成します。
OMMobileSecurityService mss = new OMMobileSecurityService(context, configProperties, callback);
初期化サンプル・コード
Map<String, Object> configProp = new HashMap<String, Object>(); //The following strings should be available in configProperties. //Otherwise, IllegalArgumentException will be thrown configProp.put(OMMobileSecurityService.OM_PROP_AUTHSERVER_TYPE, OMMobileSecurityService.AuthServerType.OAMMS); configProp.put(OMMobileSecurityService.OM_PROP_OAMMS_SERVICE_DOMAIN, "MobileServiceDomain"); configProp.put(OMMobileSecurityService.OM_PROP_APPNAME, "MyApp"); configProp.put(OMMobileSecurityService.OM_PROP_OAMMS_URL, ":14100"); OMMobileSecurityService mss = new OMMobileSecurityService(getApplicationContext(),快来看看是不是你老婆 configProp, callback); //getApplicationContext(): context of the calling application; //callback: Instance of a class which has implemented the interface //OMMobileServiceCallback
OM_PROP_OAMMS_URL - Mobile and Socialサーバーに到達するために必要なURL(<protocol>://<host>:<port>)です。HTTPおよびHTTPSプロトコルのみがサポートされています。
三级片在线OM_PROP_OAMMS_SERVICE_DOMAIN - Mobile and Socialサーバーで作成されたサービス・ドメインの名前を指定します。OM_PROP_APPNAMEが参照するアプリケーション・プロファイルは、このサービス・ドメイン内でアプリケーション・プロファイルとして定義されている必要があります。詳細は、『Oracle Fusion Middleware Oracle Access Management措置者ガイド』のサービス・ドメインの定義に関する項を参照してください。
OM_PROP_APPNAME - アプリケーションを識別する一意の識別子です。この笔墨列値はMobile and Socialサーバー措置コンソールのアプリケーション・プロファイルのセクションにあるアプリケーション名の値に一致している必要があります。詳細は、『Oracle Fusion Middleware Oracle Access Management措置者ガイド』のアプリケーション・プロファイルの定義に関する項を参照してください。
手順2: アクティビティの登録
OMMobileSecurityServiceでsetup()、authenticate()およびprocessSSORequest(Intent intent)などのメソッドを呼び出す前に、現在のアクティビティを登録します。フォアグラウンドでなくなったら、このアクティビティの登録を捣毁します。こうすることによって、メモリ・リークが確実に発生しないようにします。現在のアクティビティへの参照を渡すには、前述のメソッドをコールするすべてのアクティビティに関して、onResume()で現在のアクティビティを登録し、onPause()でアクティビティの登録を捣毁します。アクティビティのonCreate()でこれらのメソッドが呼ばれる場合は、メソッドを呼ぶ前にOMMobileSecurityService#registerActivity(activity)を使用してアクティビティを登録します。アクティビティがバックグラウンドに移動するときには、OMMobileSecurityService#deregisterActivity()メソッドを使用してアクティビティの登録を捣毁します。
mss.registerActivity(this);
手順3: setup()メソッドの呼出し
Mobile and Socialサーバーからのアプリケーション・プロファイルのダウンロードを開始するsetup()メソッドを呼び出します。
mss.setup();
これは非同时コールです。アプリケーション・プロファイルのダウンロードが收场するか、またはネットワーク堵截などの問題が発生した場合、SDKは次のコールバックを使用してコール元のアクティビティに制御を返します。
OMMobileServiceCallback#processSetupResponse(OMOMMobileSecurityService mss, OMApplicationProfile profile, OMMobileSecurityException mse)
アプリケーション・プロファイルをダウンロードできなかった場合は、OMMobileSecurityException mseで例外の詳細を確認できます。SDKはアプリケーション・プロファイルのダウンロードと格納を行います。ProfileCacheDurationで設定された有効期限が切れるまでは、以降のOMMobileSecurityService#setup()のコールでアプリケーション・プロファイルはダウンロードされません。ProfileCacheDurationの設定はアプリケーション・プロファイルの中で定義されます。
手順4: authenticate()メソッドの呼出し
設定が日常に收场したら、ビジネス・アプリケーションはOMMobileSecurityService#authenticate()をコールすることによって認証を実行できます。これは非同时コールであり、認証の收场後、またはなんらかの根由で認証が失敗した場合、SDKは制御をアプリケーションに返します。アプリケーションへの制御の戻しは、OMMobileServiceCallback#processAuthenticationResponse(OMMobileSecurityService mss, OMAuthenticationContext context, OMMobileSecurityException mse)を通じて行われます。認証セッションに関するすべての詳細は、OMAuthenticationContextコンテキストでアクセスできます。なんらかの根由で認証に失敗した場合は、OMMobileSecurityException mseに詳細が格納されます。
次のようにページを設定します。
View view = mss.authenticate(); setContentView(view);
authenticate()メソッドは、処理中のビューを保抓するViewFlipperオブジェクトを返します。このビューにフォーカスが設定されると、実際の認証フローがトリガーされます。
前述のリクエストに関して、有効な認証コンテキストがすでにキャッシュ内に存在する場合は、サーバーへのリクエストを行わずにコール元のビジネス・アプリケーションに制御が返されます。
次のサンプル・コードは、processAuthenticationResponse()メソッドの使用步调を示しています。
public void processAuthenticationResponse(OMMobileSecurityService mss, OMAuthenticationContext context, OMMobileSecurityException mse) { if (context != null) { Toast.makeText(getApplicationContext(), "Logged in successfully.", Toast.LENGTH_LONG).show(); } else { Toast.makeText(getApplicationContext(), "Failure in login due to " + mse.getLocalizedMessage(), Toast.LENGTH_LONG).show(); } }
手順5: logout()メソッドの呼出し
次のメソッドを呼び出して、ユーザーをログアウトします。
mobileSecurityService.logout(boolen isForgetDevice)
Mobile and Socialサーバーのログアウト操作には、サーバー上で措置されているトークンを削除するためのREST Webサービスの起動が含まれています。したがって、サーバー連携の收场後、OMMobileServiceCallback#processLogoutResponse(OMMobileSecurityService mss91porn y, OMMobileSecurityException mse)コールバックが呼ばれます。次に、コールバックの実装サンプルを示します。
public void processLogoutResponse(OMMobileSecurityService mss, OMMobileSecurityException mse) { if(mse == null) { Toast.makeText(getApplicationContext(), "Logout is successful!", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getApplicationContext(), "Logout failure. " + mse.getErrorMessage(), Toast.LENGTH_SHORT).show(); } }