📄 adminlogin.java
字号:
package guestbook;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import sun.misc.BASE64Decoder;public class adminlogin extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Init init=new Init(getServletContext().getRealPath("/")); response.setContentType("text/html; charset=GB2312"); //get authorization header String authorization = request.getHeader("Authorization"); if (authorization == null) { challenge(response); //no authorization so challenge } else { //determine if client is using basic authentication if (!authorization.toLowerCase().startsWith("basic")) { challenge(response); //not basic so challenge } //取经过base64编码后的帐号和密码,从字符串第六位开始取 String namePass = authorization.substring(6).trim(); //instantiate Base64 decoder BASE64Decoder decode = new BASE64Decoder(); //decode username and password namePass = new String(decode.decodeBuffer(namePass)); int colon = namePass.indexOf(":"); //get username and password from decoded authorization text String username = namePass.substring(0, colon); String password = namePass.substring(colon+1); //validate username and password (case sensitive) if (!username.equals(init.getSuperName()) ||!password.equals(init.getSuperPassword())) { challenge(response); //invalid credentials so challenge } else { //验证通过后就写如cookie Cookie myCookie=new Cookie("ADMIN",init.getSuperName()); response.addCookie(myCookie); response.sendRedirect("index.jsp"); } } }//向浏览器响应401头 private void challenge(HttpServletResponse response) { response.setStatus(response.SC_UNAUTHORIZED); response.setHeader("WWW-Authenticate", "Basic realm=\"Login\""); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -