gpt4 book ai didi

java - 在 URL 中获取实际地址而不是代理地址 Url

转载 作者:行者123 更新时间:2023-11-30 10:07:35 25 4
gpt4 key购买 nike

我已经对 Web 应用程序做了一个反向代理作为 example.test.com 并且实际地址是 *.*.*.56 并且当我点击时它工作正常example.test.com 但当我添加 Office 365 身份验证时,我使用 httpRequest.getRequestURL(); 命令通过我的 Java 进行调试 我想要代理地址,但我得到的是实际地址地址为 ***.***.0.56

我尝试使用 Java 更改 URL 但没有成功

String currentUri = httpRequest.getRequestURL().toString();

我需要在代理服务器中设置任何解决方案以获取我当前 URL 中的代理地址。

我在 azure AAD 中收到错误提示,但在反向代理中它作为 example.test.com 存在

{"error_description":"AADSTS70002: 验证凭证时出错。AADSTS50011: 回复地址 'https://*...56:8080/abc/' 与回复地址不匹配 '请求授权代码时提供 https://example.test.com/'。\r\n跟踪 ID:gddsgc97-5667-6574g-9897h-97536vg688\r\n关联 ID:565gtdf-j7573-087f-9745a-792835t647\r\nTimestamp: 2019-01-14 10:09:54Z","error":"invalid_client"

最佳答案

可以在请求头X-Forwarded-Host中获取原始主机名。

更新:使用过滤器

@WebFilter(filterName = "RequestURLFilter", urlPatterns = {"/*"})
public class RequestURLFilter implements Filter {
private FilterConfig filterConfig = null;

public RequestURLFilter() {
}

@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
ServletRequest wrappedRequest
= new HttpServletRequestWrapper((HttpServletRequest) request) {
@Override
public String getServerName() {
String forwarded = getHeader("X-Forwarded-Host");
if (forwarded != null) {
return forwarded;
} else {
return super.getServerName();
}
}

@Override
public String getRequestURI() {
String info = getPathInfo();
if (info == null) {
info = "";
}
return getScheme() + "://" + getServerName() + getContextPath()
+ getServletPath() + info;
}

@Override
public StringBuffer getRequestURL() {
return new StringBuffer(getRequestURI());
}
};
chain.doFilter(wrappedRequest, response);
}

public FilterConfig getFilterConfig() {
return (this.filterConfig);
}

public void setFilterConfig(FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}

@Override
public void init(FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}

@Override
public void destroy() {
}
}

关于java - 在 URL 中获取实际地址而不是代理地址 Url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54177123/

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