Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring安全性、OAUTH Cors、选项_Java_Spring_Spring Mvc_Oauth_Cors - Fatal编程技术网

Java Spring安全性、OAUTH Cors、选项

Java Spring安全性、OAUTH Cors、选项,java,spring,spring-mvc,oauth,cors,Java,Spring,Spring Mvc,Oauth,Cors,我有一个spring引导应用程序,它具有Oauth身份验证和一个资源服务器,并且位于一个应用程序中。我的前端在一个单独的服务器上,从一个单独的位置。我的前端应用程序似乎没有对后端执行飞行前操作,后端总是以401作为响应。我的配置如下所示: /。。。注释 公共类OAuthConfig扩展了WebSecurity配置适配器{ //…身份验证提供程序 @凌驾 受保护的无效配置(HttpSecurity http)引发异常{ //@formatter:off http .csrf().disable()

我有一个spring引导应用程序,它具有Oauth身份验证和一个资源服务器,并且位于一个应用程序中。我的前端在一个单独的服务器上,从一个单独的位置。我的前端应用程序似乎没有对后端执行飞行前操作,后端总是以401作为响应。我的配置如下所示:

/。。。注释
公共类OAuthConfig扩展了WebSecurity配置适配器{
//…身份验证提供程序
@凌驾
受保护的无效配置(HttpSecurity http)引发异常{
//@formatter:off
http
.csrf().disable()
.授权请求()
.antMatchers(“/”、“/*.html”、“layout/**”、“js/**”、“css/**”、“images/**”、“font/**”,
“/signup”、“/register”,
“/oauth/**”)
.permitAll()
.及()
.授权请求()
.antMatchers(HttpMethod.OPTIONS,“/oauth/**”).permitAll()
;
//@formatter:on
}
//…豆子
}
请注意,我还必须为静态内容添加异常,因为尽管有文档记录,它似乎无法以其他方式工作

/。。。注释
公共类MvcConfig扩展了WebMVCConfigureAdapter{
//…资源冲突解决程序,视图冲突解决程序
@凌驾
公共作废添加公司标志(公司注册处){
registry.addMapping(“/**”);
}
}
我试图更明确地指定,但也没有成功:

@覆盖
公共作废添加公司标志(公司注册处){
registry.addMapping(“/api/**”)。允许的方法(“获取”、“发布”、“选项”、“删除”、“更新”);
registry.addMapping(“/register”);
registry.addMapping(“/signup”);
registry.addMapping(“/oauth/**”).allowedMethods(“GET”、“POST”、“OPTIONS”);
}
/。。。注释
公共类ResourceServerConfig扩展了ResourceServerConfigurerAdapter{
//…资源id配置
@凌驾
public void configure(HttpSecurity http)引发异常{
//@格式化程序:关闭
http
.anonymous().disable()
.requestMatchers()
.antMatchers(“/api/**”)
.及()
.授权请求()
.antMatchers(“/api/**”).authenticated()
.及()
.exceptionHandling().accessDeniedHandler(新的OAuth2AccessDeniedHandler());
//@格式化程序:打开
}
}

在这一点上,我不知道我是否错过了任何重要的配置,通过身份验证端点(以及API端点的其他部分)实现CORS。

如果您遇到HTTP 401错误,对我来说,这并不意味着CORS配置是个问题。401应该意味着未经授权,因此问题可能更多地出现在您的安全配置中。如果是跨源问题,则会出现类似“请求的资源上不存在“Access Control Allow origin”标头”的错误

事实上,我有一个应用程序,它在一个请求上获得了HTTP 200(OK),该请求由于跨源问题而失败

如果你需要帮助,你应该提供关于401错误代码的请求/响应的详细信息



我知道这不是一个真正的答案,但我还没有发表评论的名声,所以我希望这会有所帮助。

如果您遇到HTTP 401错误,对我来说,这并不意味着CORS配置是个问题。401应该意味着未经授权,因此问题可能更多地出现在您的安全配置中。如果是跨源问题,则会出现类似“请求的资源上不存在“Access Control Allow origin”标头”的错误

事实上,我有一个应用程序,它在一个请求上获得了HTTP 200(OK),该请求由于跨源问题而失败

如果你需要帮助,你应该提供关于401错误代码的请求/响应的详细信息



我知道这不是一个真正的答案,但我还没有发表评论的声誉,所以我希望这会有所帮助。

您也可以在服务器上配置CORS。这将适用于应用程序的所有API。或者,您可以在重新请求和响应中设置“Access Control Allow Origin to*”,以便api可以响应来自任何服务器的任何请求。

您还可以在服务器上配置CORS。这将适用于应用程序的所有API。或者,您可以在重新请求和响应中设置“Access Control Allow Origin to*”,这样您的api就可以响应来自任何服务器的任何请求。

查看我对类似问题的回答查看我对类似问题的回答