gpt4 book ai didi

java - 从前端应用程序查询其余后端应用程序时避免基本身份验证弹出窗口

转载 作者:行者123 更新时间:2023-12-01 16:46:36 25 4
gpt4 key购买 nike

我有两个应用程序,两个 war ,app-rest 和 app-web。 App-rest 是持有rest-api 的后端,app-web 是持有react GUI 的前端。

我想使用基本身份验证来保护后端,但执行此操作时,前端 ajax 请求会在浏览器中触发基本身份验证弹出窗口。

我使用 Glassfish 作为应用程序服务器。

我尝试保护这两个应用程序,希望它们共享 session cookie,但情况似乎并非如此。

还尝试过 java 过滤器在未经授权时尝试删除 WWW 验证 header ,因为我读到该 header 是触发弹出窗口的 header ,但在基本身份验证初始化期间不会激活过滤器。

我尝试过使用基于表单的登录和这种工作方式,但后来我失去了使用像 postman 这样的应用程序来测试我的rest-api的能力(至少我认为是这种情况,因为我无法在请求本身中进行身份验证)

在从前端向后端发出请求时,如何避免显示基本身份验证弹出窗口?

最佳答案

这个了不起的人解决了这个问题:How to change response before send

他所做的是将其添加到 web.xml

<error-page>
<error-code>401</error-code>
<location>/error.jsp</location>
</error-page>

在 error.jsp 中:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<%
int status = response.getStatus();
if (status == 401) {
response.setStatus(403);
}
%>
</body>
</html>

然后在您的 JavaScript 中,您只需查找状态代码 403 并显示自定义登录屏幕,而无需弹出基本身份验证窗口。

关于java - 从前端应用程序查询其余后端应用程序时避免基本身份验证弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61761555/

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