epa*_*van 6 java spring spring-data-rest
我在我的应用程序中使用spring-data-rest,它位于从 HTTP 重定向到 HTTPS 的 apache 反向代理后面
这反过来会导致错误的 hrefs:http而不是https方案。
例子:
{
"_links" : {
"profile" : {
"href" : "http://my.host/api/profile"
}
}
}
Run Code Online (Sandbox Code Playgroud)
有什么方法可以配置spring.data.rest强制使用 https 方案?
在挖掘源代码后,我发现所有链接创建都源于这一点,似乎不可能以“标准”方式配置强制使用 https 方案。
所以,我创建了一个过滤器,取代http://以https://在请求URL和问题也没有了。这是片段:
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
final HttpServletRequestWrapper wrapped = new HttpServletRequestWrapper(request) {
@Override
public StringBuffer getRequestURL() {
final StringBuffer originalUrl = ((HttpServletRequest) getRequest()).getRequestURL();
final String updatedUrl = originalUrl.toString().replace("http://", "https://");
return new StringBuffer(updatedUrl);
}
};
filterChain.doFilter(wrapped, servletResponse);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1313 次 |
| 最近记录: |