的 解 强>
由于您的自定义安全配置类,您可能会看到此错误( WebSecurity )
WebSecurity
您没有明确声明基本网址的“全民免费”规则, / (Angular应用程序将会存在!)。在这里我假设基本网址是 / ,如果不能使这个答案适用于您的基本真实网址。
/
所以,在你的 的 WebSecurity 强> 通过更改此添加提到的规则:
//...omitted code for brevity http.cors().and().csrf().disable().authorizeRequests() .antMatchers("/hms/fetchmeta/*", "/hms/registration/*").permitAll() //...omitted code for brevity
至
//...omitted code for brevity http.cors().and().csrf().disable().authorizeRequests() .antMatchers("/hms/fetchmeta/*", "/hms/registration/*", "/") // <--Notice here the base url added to the "free for all" rule! .permitAll() //...omitted code for brevity
但...... 的 为什么会发生这种错误?! 强>
好吧,正如您所评论的那样,显式错误是
Whitelabel错误页面此应用程序没有显式映射 /错误,所以你看到这是一个后备。 Fri Mar 02 13:38:44 IST 2018出现意外错误(type = Forbidden,status = 403)。 拒绝访问
这意味着当您尝试访问Angular应用程序时(位于基本URL的服务器角度, / ,例如),服务器检测到您没有登录,因此它会抛出一个 403禁止 。这通常会显示在Spring Boot应用程序的错误页面中......并且由于您没有此路由的映射, /error ,(你的文件都没有 src/main/resources/static/error/403.html 这通常会显示此错误),然后您会看到您向我展示的这个“后备”消息。
/error
src/main/resources/static/error/403.html
的 建议 强>
从现在的基础网址 / 对所有人免费,您的服务(由Spring Boot提供)应该以类似的方式作为前缀 /api 或任何类似的,以防止免费访问它们。
/api
的 参考 强>
如果您想要参考,请检查此项 安全配置 ,这正是你想要做的事情(它属于一个部署一个项目的项目 Spring Boot + Angular打包为战争 项目)