Java 角度前端与Spring后端安全性对话
我有一个棱角分明的前端,无法接收使用后端服务器中的spring进行身份验证的用户。我确认后端身份验证在本地工作,但在尝试调用getCurrentUser方法时,Angular出现了CORS错误(只返回当前经过身份验证的用户)。如何解决此CORS错误Java 角度前端与Spring后端安全性对话,java,angular,spring,security,Java,Angular,Spring,Security,我有一个棱角分明的前端,无法接收使用后端服务器中的spring进行身份验证的用户。我确认后端身份验证在本地工作,但在尝试调用getCurrentUser方法时,Angular出现了CORS错误(只返回当前经过身份验证的用户)。如何解决此CORS错误 我知道我必须在spring中配置CORS,因为它充当我的后端服务器,我的角度前端需要与它对话,以从我的api方法获得结果 您是否尝试在控制器中添加@CrossOrigin(origins=“”)?对于使用spring security的Cors处理,
我知道我必须在spring中配置CORS,因为它充当我的后端服务器,我的角度前端需要与它对话,以从我的api方法获得结果 您是否尝试在控制器中添加@CrossOrigin(origins=“”)?对于使用spring security的Cors处理,您的类中应该有一个扩展
WebSecurityConfigureAdapter
的CORSCOConfiguration Source
,如下所示
@Bean
public CorsConfigurationSource corsConfigurationSource() {
final CorsConfiguration configuration = new CorsConfiguration();
configuration.applyPermitDefaultValues();
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return source;
}
至于如何识别经过身份验证的用户,您很可能希望Spring中有一个返回登录状态的控制器。记住也要在这个方法上启用cors
@CrossOrigin
@RequestMapping(value = "/login", method = RequestMethod.GET)
public String login(Model model, String error, String logout) {
if (error != null) {
model.addAttribute("error", "Your username and password is invalid.");
}
if (logout != null) {
model.addAttribute("message", "You have been logged out successfully.");
}
return "login";
}
希望这有帮助。这能回答您的问题吗?您是否尝试过为正确的CORS操作配置Spring?我相信CORS配置应该在Spring中进行,而不是在角度上。当尝试使用Angular访问我的后端服务器时,即当我收到Cors错误时,我将在何处添加此错误?您可以在声明控制器的位置添加此错误,与添加@controller注释的位置相同。Cors配置正是我要找的!我已经有了一个用于spring security的控制器,但我喜欢你介绍的这个控制器有多简单。谢谢