gpt4 book ai didi

java - 后续访问的Tomcat鉴权

转载 作者:行者123 更新时间:2023-11-28 23:29:26 25 4
gpt4 key购买 nike

我正在尝试模拟身份验证 (BASIC) 在 Tomcat 中是如何发生的,问题是当我第二次尝试获取资源时它不要求密码而是直接在我的浏览器上显示资源。如何为每个请求强制弹出登录?

下面是我正在使用的 Servlet 代码。

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

//import org.apache.tomcat.util.buf.Base64;

public class TestServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("This is the Test Servlet");

Enumeration headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
String headerName = (String) headerNames.nextElement();
out.print("<br/>Header Name: <em>" + headerName);
String headerValue = request.getHeader(headerName);
out.print("</em>, Header Value: <em>" + headerValue);
out.println("</em>");
}

out.println("<hr/>");
String authHeader = request.getHeader("authorization");
String encodedValue = authHeader.split(" ")[1];
//out.println("Base64-encoded Authorization Value: <em>" + encodedValue);
//String decodedValue = Base64.base64Decode(encodedValue);
//out.println("</em><br/>Base64-decoded Authorization Value: <em>" + decodedValue);
out.println("</em>");
}

}

还有我的部分 web.xml 角色和用户

    <role rolename="tomcat"/>   
<user username="tomcat" password="tomcat"
roles="tomcat"/> <user username="myname" password="mypassword" roles="tomcat"/> <user username="test" password="test"/>
</tomcat-users>

PS:我知道这不是很好的身份验证方式,但我需要知道它有效,然后我才能探索 ssl 身份验证。

最佳答案

您可以在每次调用后清除 session (doGet() 方法的最后一行):

request.getSession().invalidate();

关于java - 后续访问的Tomcat鉴权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32494131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com