アプリケーションは、IMAPSが提供している認証機構を呼び出して、利用しているユーザーの正当性を検証する事ができます。ログインには以下のような種類があります。
IMAPSサーバが提供している認証機能をネットワーク経由で呼び出し、サーバ側で認証するオンライン認証
クライアント内部で保持しているクレデンシャルを用いて認証する、オフライン認証
使用例:Android
オンライン認証を行うためには、com.fujitsu.imaps.plugin.auth.javaapi.LoginManager#loginOnlineメソッド、オフライン認証を行うためには、com.fujitsu.imaps.plugin.auth.javaapi.LoginManager#loginOfflineメソッドを呼び出します。
private void loginFunc(Context context) {
String url = "https://サーバアドレス:ポート";
String userId = "user1";
String passwd = "pass11";
new AsyncLoginTask(context, url, userId, passwd).execute();
}
class AsyncLoginTask extends AsyncTask<String, Integer, String> {
LoginManager mLoginManager = null;
String mLoginURL = null;
String mUserId = null;
String mPasswd = null;
・・・・
public AsyncLoginTask(Context context, String loginURL, String userId, String passwd) {
mLoginManager = new LoginManager(context);
mLoginURL = loginURL;
mUserId = userId;
mPasswd = passwd;
・・・・
}
protected String doInBackground(String... params) {
try {
mLoginManager.loginOnline(mLoginURL, mUserId, mPasswd);
} catch (例外キャッチ) {
// キャッチした例外の内容に応じて、例外処理を実装します。
}
return null;
}
} private void loginFunc(Context context) {
String userId = "user1";
String passwd = "pass11";
try {
mLoginManager = new LoginManager(context);
mLoginManager.loginOffline(userId, passwd);
} catch (例外キャッチ) {
// キャッチした例外の内容に応じて、例外処理を実装します。
}
}オフライン認証とは、クライアントが保持しているクレデンシャルを用いて利用ユーザーの正当性を検証する認証です。IMAPSサーバの認証機構を利用しないため、ネットワークが利用できない状態でも認証を行うことができます。オフライン認証を行うためには、オンライン認証で一度は認証しておかなくてはなりません。
ネットワーク状態を気にせずにログインを実行したい場合には、com.fujitsu.imaps.plugin.auth.javaapi.LoginManager#loginAutoメソッドを呼び出します。loginAutoメソッドは、ネットワーク状態に応じて最適なログイン方法を選択します。
使用例:iOS
オンライン認証は、IMALoginManagerのloginOnlineメソッド、オフライン認証はloginOfflineメソッドを呼び出します。実行結果はIMALoginDelegateで通知されます。詳細はAppleDocを参照してください。
- (void)func {
IMALoginManager *loginManager = [[IMALoginManager alloc] init:self];
[loginManager loginOnline:@"https:// サーバアドレス:ポート/"userId:@"userid" passwd:@"password"];
}- (void)func {
IMALoginManager *loginManager = [[IMALoginManager alloc] init:self];
[loginManager loginOffline:@"userid" passwd:@"password"];
}注意
Androidの場合、ログアウトを呼び出さずにアプリケーションを終了すると、再度アプリケーションを起動したときに、ユーザー情報や認証情報が残ったままになっている場合があります。
アプリケーションの終了時、または起動時にログアウトを呼び出して、ユーザー情報を初期化してください。