大家好,我的客户有一些问题。 每当我使用这样的Proxy向我的spring后端发出发布请求时...
{
"/api": {
"target": "http://localhost:3000",
"secure": false,
"changeOrigin": true,
"pathRewrite": {
"^/api": ""
}
}
}
如果我将changeOrigin设置为False,那么它将按预期在后端工作。登录正常。唯一奇怪的是角度客户端的响应。我没有从后端服务器获得原始响应,而是得到了我的有角度应用程序的index.html文件的内容。 httpClient.post.subscribe(...)中的响应只是Index.html文件的内容。
然后我尝试将changeOrigin设置为true。但是后来什么也没有了。 我收到错误提示,并且Spring Backend拒绝了该请求。为什么? 我以为,当我想要在后端禁用cors时,使用代理是可行的方法。至少在设置开发环境方面。
在后端,我的春季安全防护如下:
@Override
public void configure(HttpSecurity http) throws Exception {
http.csrf().disable().exceptionHandling()
.authenticationEntryPoint(
(request, response, authException) -> response.sendError(HttpServletResponse.SC_UNAUTHORIZED)
)
.and().authorizeRequests()
.antMatchers("/login", "/authorize").permitAll()
.anyRequest().authenticated()
.and().formLogin().permitAll();//.and().httpBasic();
}
在我的浏览器中,客户端向我显示以下错误消息:
答案 0 :(得分:0)
为解决我的问题,我在后端激活了跨源令牌。
@Override
public void configure(HttpSecurity http) throws Exception {
http.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());
}
我认为,如果我使用代理服务器,那就没有必要了。