【发布时间】:2018-03-09 17:52:26
【问题描述】:
我创建了一个带有 AngularJS 前端的 SpringBoot 应用程序,但我没有使用任何 Spring Security 模块。
我在控制器中添加了@CrossOrigin 注释,如下所示
@CrossOrigin(origins = "http://localhost:3000", maxAge = 3600)
@RestController
public class MyController {
public static final Logger logger = LoggerFactory.getLogger(MyController.class);
.....
.....
我还创建了一个 CORS 过滤器,如下所示。
@Component
public class CORSFilter implements Filter {
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
chain.doFilter(req, res);
}
public void init(FilterConfig filterConfig) {}
public void destroy() {}
}
我的 angularJS 前端中的 OPTIONS 出现以下错误
XMLHttpRequest cannot load http://localhost:8080/abc/books/. Response for preflight has invalid HTTP status code 401 (edited)
[12:10]
zone.js:2744 OPTIONS http://localhost:8080/abc/books/ 401 ()
我的 SpringBoot 应用程序在 PostMan 上运行良好,当我使用 Chrome 时会发生此预检错误。我该如何解决?
编辑
我还使用了 activiti-spring-boot-starter-rest-api,它具有以下功能:
import org.activiti.engine.IdentityService;
import org.activiti.engine.identity.User;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
@Component
public class AuthenticationService {
@Bean
InitializingBean usersAndGroupsInitializer(final IdentityService identityService) {
return new InitializingBean() {
public void afterPropertiesSet() throws Exception {
User admin = identityService.newUser("admin");
admin.setPassword("admin");
identityService.saveUser(admin);
}
};
}
}
【问题讨论】:
-
@g00glen00b 我没有启用弹簧安全
-
@g00glen00b 这是有道理的。我已经编辑了我的问题。我没有意识到 activiti 依赖可能导致问题。有没有办法可以禁用 OPTIONS 的要求授权?
标签: java angularjs spring-boot cors activiti