Saat Anda masuk ke situs web, sebagian besar waktu, Anda mengirimkan informasi login Anda melalui formulir.
Tetapi kadang -kadang kotak dialog verifikasi login muncul oleh browser, seperti yang ditunjukkan pada gambar di bawah ini, yang merupakan otentikasi dasar menggunakan HTTP.
Mari kita lihat proses sertifikasi ini:
Langkah 1: Klien mengirimkan permintaan HTTP ke server, dan server memverifikasi apakah pengguna telah masuk dan diverifikasi. Jika tidak,
Server akan mengembalikan 401 yang tidak aauthozied ke klien dan menambahkan informasi di header "www-authenticate" dari respons.
Seperti yang ditunjukkan pada gambar di bawah ini.
Langkah 3: Server mengeluarkan nama pengguna dan kata sandi di header otorisasi dan melakukan verifikasi. Jika verifikasi dilewati, sumber daya akan dikirim ke klien sesuai dengan permintaan.
Berikut adalah kode sampel untuk java
Impor java.io.ioException; impor java.io.printwriter; impor javax.servlet.http.httpservlet; impor javax.servlet.http.httpservletrequest; impor javax.servlet.http.httpservletePonse; HttpAuthServlet memperluas httpservlet {public void doGet (httpservletRequest, respons httpservletResponse) melempar ioException {string sessionAuth = (string) request.getSession (). Getattribute ("auth"); if (sessionAuth! = null) {System.out.println ("Ini langkah berikutnya"); nextStep (permintaan, respons); } else {if (! OckheaderAuth (request, response)) {response.setStatus (401); response.setheader ("cache-control", "no-store"); response.setDateheader ("kedaluwarsa", 0); response.setHeader ("www-autenticate", "dasar ranah =/" tes/""); }}} private boolean checkHeaderArAuth (permintaan httpservletRequest, httpservletResponse response) melempar ioException {string auth = request.getHeader ("otorisasi"); System.out.println ("auth yang dikodekan dalam base64 adalah" + getfrombase64 (auth)); if ((auth! = null) && (auth.length ()> 6)) {auth = auth.substring (6, auth.length ()); String decodedAuth = getFrombase64 (auth); System.out.println ("Auth Decoded dari Base64 adalah" + decodedauth); request.getSession (). setAttribute ("auth", decodedauth); Kembali Benar; } else {return false; }} private string getfrombase64 (string s) {if (s == null) return null; Base64decoder decoder = base64decoder baru (); coba {byte [] b = decoder.decodebuffer (s); mengembalikan string baru (b); } catch (Exception e) {return null; }} public void nextStep (permintaan httpservletRequest, httpservletResponse response) melempar ioException {printwriter pw = response.getWriter (); pw.println ("<Html> Langkah selanjutnya, otentikasi adalah:" + request.getSession (). getAttribute ("auth") + "<br>"); pw.println ("<br> </html>"); } public void dopost (permintaan httpservletRequest, respons httpservletResponse) melempar ioException {doGet (permintaan, respons); }}Ketika permintaan pertama kali tiba di server, server tidak memiliki informasi otentikasi, dan server akan mengembalikan 401 yang tidak aauthozied ke klien.
Setelah otentikasi, tempatkan informasi otentikasi di sesi, dan tidak perlu mengotentikasi selama periode validitas sesi di masa depan.
Di atas adalah konten lengkap dari kode instance Java untuk otentikasi dasar yang dibawa kepada Anda oleh editor. Saya harap semua orang akan mendukung wulin.com lebih banyak ~