分のブラウザの対話処理(認証ダイアログ
-
23-08-2019 - |
質問
があるので、Javaを用いた以上に乗り、ブラウザの対話処理(認証ダイアログボックスが401のメッセージを受信したら、webサーバ?知りたい時にこのダイアログが表示されているのではなく、まるにつれ、ユーザーの、ご記入資格です。
概要:
私のウェブサーバので、基本的にいた人から開設外のブラウザをはlocalhostとポートへのアクセスのデータを表示します。私のアプリを組み込んだウェブブラウザのリンクは私の書きます。ブラウザに表示す復号の内容なので、私は、authも自分の組込みブラウザでは、外部からのブラウザが必要を満たしている。う場合の組込みブラウザでアクセスしようとしているファイルの、供給の資格は、ユーザにコンテンツ
解決 2
SWT 3.5M6は、それがAuthenticationListenerを呼び出し内の新しいリスナーを持っています。これは、単にサーバーから渡された認証イベントをリッスンし、解雇されます。以下のコードは、私が望んでいた動作を実行するものです。これは、認証のために待機し、ホストが自分のアプリケーションであれば、それは資格証明書をバックに渡します。もちろん、適切な変数でUSER_NAME、PASSWORDおよびHOST_NAMEに記入。それ以外の場合は、ブラウザの認証ダイアログポップアップをすることができ、ユーザーが資格情報を入力します。このコードはまた、EclipseのSWTスニペットのページで見つけることができます:
webBrowser.addAuthenticationListener(新しいAuthenticationListener()
{
public void authenticate(AuthenticationEvent event) {
try {
URL url = new URL(event.location);
if (url.getHost().equals(HOST_NAME))
{
event.user = USER_NAME;
event.password = PASSWORD;
}
else
{
/* do nothing, let default prompter run */
}
} catch (MalformedURLException e) {
/* should not happen, let default prompter run */
}
}
});
他のヒント
あなたはそれが資格情報の元を渡してURLを構築することができます示すパスワードを気にしない場合。 ます。http://ユーザ名:password@www.example.com にこれはによる認証ボックスを渡しますしかし、ユーザーが表示されます資格情報もそう、あなたが探しているものではないかもしれません。
あなたの質問は少し不明です。全体の基本認証はHTTPヘッダーに基づいています。
ブラウザは、それがダイアログを表示するよりも、認証ヘッダーを取得した場合。ダイアログからのコンテンツが、サーバに送り返すです。それについて特別なことは何もありません。それISERユーザ名:base64エンコードにパスワードを入力します。見てください。
問題は、あなたが干渉する方法です。あなたは認証ヘッダーをキャプチャして、あなたが資格情報を含めるようにHTTPヘッダーを変更する必要が次の要求をしなければなりません。
助け希望
これは主にブラウザの依存性にサーバーへの報告のブランド、、、。
例えば、Internet Explorerは、Microsoft製品に直接対応自動送信のWindows認定資格ですこの動作を変更するインターネットの設定)を作ることは要求に失敗したに401.
Firefoxは、例えば、ずいつでも迅速にユーザーであっても設定を記憶するためのidとパスワードはパスワードマネージャ。IEをもたらすとともに自動ログインに失敗した(Windowsの資格が結401ないidん)。
とは思わない,ウェブ-デベロッパーとして、多くの制御はこのほかの設定サーバーアプリの仕事を最も期待できる、調和のとれた意味するものなのでしょうただ、このように 黒い帽子の領域.
は、フォームにBASICからのweb.xmlのログイン-configセクションでのauth-methodを変更することができます。
次に、あなたは、ユーザーが認証されたときに表示されなければならない、と、私は仮定し、彼らのために事前に記入した資格情報...しかし、これはセキュリティの全体の目的を敗北されませんどのようなページを指定することができますか?
<のWebアプリケーション用の認証の設定/ P>
詳細は後に編集します:
私の唯一の提案は、CLIENT-CERTにのauth-methodを変更すると、クライアントは、サーバに証明書を提示する必要が双方向SSLを必要とするだろう。あなたが埋め込まれたブラウザ(および外部ブラウザが証明書を取得することはできませんことを確認してください)に証明書をインストールした場合、あなたはOKでなければなりません。そして、実際にこれが表示されてから任意の認証ダイアログを停止する必要があります。