Lunaこの広告は、90日以上更新していないブログに表示しています。Plugin開発org.eclipse.core.netとorg.eclipse.ui.netプラグインがある環境で、認証が必要なサイトへ接続すると自動でユーザ名やパスワードを入力するダイアログが表示されます。いうダイアログが表示されるので、ユーザ名やパスワードが必要な時に入力をうながしてくれるのはいいのですが、一度入力したのなら、どこかに情報を保持しておきたくなるわけで、どうやるのか、メモを残しておきます。1.6.0-16Javaで認証が必要なサイトに接続する仕組みをまず見てみた。Javaには認証が必要なサイトに接続したときに認証情報を与えるための抽象クラスがあります。それがjava.net.Authenticatorです。冒頭のダイアログはEclipseが独自にAuthenticatorの具象クラスを作成して、システムに登録していた訳です。a)というスタティックメソッドを利用します。ここで登録できるAuthenticatorはシステムでただ一つだけです。認証が必要なサイトへ接続されると、Authenticator#getPasswordAuthentication()が呼び出され、返却されるjava.net.PasswordAuthenticationを元に認証スキーマ(例えばBasic)に合わせた形で認証情報を作成して接続します。EclipseではこのAuthenticatorの具象クラス(org.eclipse.net.ui.internal.auth.NetAuthenticator)を作成し、冒頭のダイアログを表示し、ユーザ名とパスワードをユーザに入力させて認証情報を作成しています。このダイアログから返却されるPasswordAuthenticationをどっからか取得できれば設定を保存できる!と思って探ってみたんですが、java.net.Authenticator#getDefault()なんてメソッドは当然用意されてませんでした。次にEclipseはどうやってこのAuthenticatorを登録してるんだろう、と思って探って見ました。Eclipseでの登録方法Eclipseでの登録方法は、内部的な拡張ポイントorg.eclipse.core.net.authenticatorという拡張ポイントがあり、この拡張ポイントを介して登録しているのか、と思ってよくよく探っていくと、こんなコード。}}最初に取得できたポイントとか。bugs.eclipse.orgを見てみても、独自に拡張してよ、みたいに書いてあるし。org.eclipse.ui.netを外して使えるようなホストごとにパスワード保存できるプラグイン作るかなぁ。Bugsにkompiroの名前が刻まれました。やっちゃったよ!もう全然気づかなかった。Swingで作られたアプリケーション。M5ですが、その感想をば。OSGi勉強会#2を開催しました。開催しましたTracの変更をIdobataに通知するプラグインデブサミ2014に参加した!(2日目)デブサミ2014に参加した!(1日目)月別アーカイブはてなブログをはじめよう!kompiroさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。