我在某些地方使用了一些角度ui路由,我希望java服务器不能控制一些网址。
在其他地方运行java应用程序可能更有意义吗?我在同一个url中使用angularJS的原因是因为我的springboot应用程序有一些身份验证检查。所以我想要控制大多数URL。
但是有一些我可能想要控制身份验证的地方----但不是模板。
我认为我的问题是我的Spring Boot代码试图使用velocity,当其中一些URL应该转发到AngularJS路由时。
所以URL = / myreport /
- >转到Java 404错误,而不是转发到Angular UI Routing
- >但在某些情况下,Java应该返回404/500/403等人
有没有办法像RestController那样在验证后转发给AngularJS?或者禁用力度??
答案 0 :(得分:0)
如果您将Spring Boot代码限制为仅进行身份验证并提供API,并在Angular应用程序中实现所有UI,那么这可能会更直接。
然后,您仍然可以使用Spring Security来控制对API的访问。 在Angular方面,您可以在路线中使用AuthGuards根据用户的角色控制对部分UI的访问。
为了获得良好,干净的分离,使用基于令牌的身份验证而不是基于表单的身份验证或基本身份验证是有帮助的。这样,Angular应用程序可以显示登录UI,并对Spring Boot应用程序进行REST调用以登录,并获取一个令牌,用于后续调用。
如果你使用JWT,你可以让后端产生一个包含用户的令牌'角色,然后在Angular应用程序中阅读。
我最近撰写了一篇由两部分组成的博客文章,展示了如何使用JWT创建一个带有Spring Boot后端的Angular 2应用程序。 请参阅http://chariotsolutions.com/blog/post/angular-2-spring-boot-jwt-cors_part1和http://chariotsolutions.com/blog/post/angular-2-spring-boot-jwt-cors_part2