ほとんどの場合、ウェブサイトにログインすると、フォームを介してログイン情報を送信します。
ただし、下の図に示すように、[ブラウザによってログイン確認]ダイアログボックスが表示される場合があります。これは、HTTPを使用した基本認証です。
この認定のプロセスを見てみましょう。
ステップ1:クライアントはサーバーにHTTPリクエストを送信し、サーバーはユーザーがログインして検証したかどうかを検証します。そうでない場合、
サーバーは、クライアントに401を返す401を返し、応答のヘッダー「www-authenticate」に情報を追加します。
下の図に示すように。
ステップ3:サーバーは、承認ヘッダーのユーザー名とパスワードを取り出し、検証を実行します。検証が渡された場合、リソースはリクエストに従ってクライアントに送信されます。
これがJavaのサンプルコードです
java.io.ioexception; import java.io.printwriter; Import javax.servlet.http.httpservlet; import javax.servlet.servlet.httpservletrequest; Import javax.servlet.http.httpservletresponse httpservlet {public void doget(httpservletrequest request、httpservletresponse応答)throws ioexception {string sessionauth =(string)request.getSession()。getattribute( "auth"); if(sessionauth!= null){system.out.println( "これは次のステップ"); NextStep(リクエスト、応答); } else {if(!checkheaderauth(request、response)){respons.setStatus(401); Response.setheader( "Cache-Control"、 "No-Store"); Response.setDateHeader( "Expires"、0); Response.setheader( "www-authenticate"、 "Basic Realm =/" test/""); }}} private boolean checkheaderauth(httpservletrequest request、httpservletresponse応答)throws ioexception {string auth = request.getheader( "autherization"); system.out.println( "base64でエンコードされたauth is" + getFrombase64(auth)); if((auth!= null)&&(auth.length()> 6)){auth = auth.substring(6、auth.length());文字列decodedauth = getFrombase64(auth); system.out.println( "base64からデコードされた認証は" + decodedauth); request.getSession()。setAttribute( "auth"、decodedauth); trueを返します。 } else {return false; }} private string getFrombase64(string s){if(s == null)return null; base64Decoder decoder = new Base64Decoder(); try {byte [] b = decoder.decodebuffer(s);新しい文字列(b)を返します。 } catch(例外E){nullを返します。 }} public void nextStep(httpservletrequest request、httpservletResponse応答)をthrows ioexception {printwriter pw = response.getWriter(); pw.println( "<html>次のステップ、認証は次のとおりです。 pw.println( "<br> </html>"); } public void dopost(httpservletrequest request、httpservletResponse応答)IoException {doget(request、response); }}リクエストが最初にサーバーに到着すると、サーバーには認証情報がなく、サーバーはクライアントに不正な401を返します。
認証後、セッションに認証情報を配置すると、将来のセッションの有効期間中に認証する必要はありません。
上記は、編集者によってもたらされる基本認証のためのJavaインスタンスコードの完全な内容です。誰もがwulin.comをもっとサポートすることを願っています〜