ログイン後、クライアントアプリケーションがIMAPSサーバ以外のサーバにアクセスする場合、認証情報を受け渡せます。この機能はIMAPSサーバの認証機構と業務サーバとの間でSSOのような振る舞いをおこないたい場合に便利です。SSOのような振る舞いとは以下のような動作を指します。
- IMAPSサーバで認証していない場合、クライアントからのアクセスはエラーとなる。
- IMAPSサーバで認証済の場合、クライアントからのアクセスは成功する
このような振る舞いを実現するためには、以下のようにします。
- クライアントからアクセスする業務サーバ上のサーバアプリケーションに、認証モジュールを組み込む
- クライアントアプリケーションはIMAPSで認証し、業務サーバにアクセスする際には認証情報を付与してアクセスする
- 使用例
-
import java.net.Proxy;
・
・
private void connection(Context context, String url) {
new AsyncConnectTask(context, url).execute();
}
class AsyncConnectTask extends AsyncTask <String, Integer, String> {
LoginManager mLoginManager = null;
String mURL = null;
・・・・
public AsyncConnectTask(Context context, String url) {
mLoginManager = new LoginManager(context);
mURL = url;
・・・・
}
protected String doInBackground(String... params) {
try {
URL url = new URL(mURL);
HttpURLConnection con = (HttpURLConnection) url.openConnection(Proxy.NO_PROXY);
・・・
mLoginManager.setRequestAuth(con);
con.connect();
mLoginManager.checkServerTimeout(con);
・・・
mLoginManager.saveResponseAuth(con);
・・・
} catch (IMAPSAuthTimeOutException e) {
// ログアウト処理の実装を行うことを推奨します。
} catch (例外キャッチ) {
// キャッチした例外の内容に応じて、例外処理を実装します。
}
}