我有一个运行在http://localhost:4200
上的前端 应用程序,带有angular 2(我使用angular-cli
用于生成项目)。
应用程序运行没有任何问题(我可以使用 Angular 2 Http
服务从/向数据库获取和发布信息:
getList () {
return this._http.get("http:// localhost:8080/").map(res => res.json());
}
另一方面,我在 http://localhost:8080/
上有一个使用 spring boot 运行的后端应用程序(注意端口),为我的 angular 2 应用程序提供 REST Api。
将请求从 http://localhost:4200/
发送到 http://localhost:8080/
按预期工作。
在我使用 spring 框架和 angularJS 1 编写应用程序之前,spring 安全性负责同一应用程序中的登录和安全性(maven 项目)。
现在我有两个独立的应用程序,它们通过 http
进行通信(带有 spring boot 的 RESTful Api 和带有 angular 2 的前端 Api)
如何设置我的登录表单及其放置位置,以及如何为我的 angular 2 应用程序配置 spring 安全性?
最佳答案
当您使用 Angular CLI 启动 Angular 应用程序时,您的 Angular 页面由后端的 NodeJs 提供服务。 您在这里有几个选择。
登录可以在 NodeJS 服务器上处理,后者又可以调用 用于身份验证和授权的 Spring Boot 应用程序。(我认为,您可能需要做一些调整,例如使用快速服务器而不是精简服务器。在这里查看 https://stackoverflow.com/a/37561973/6785908)
初步开发后,您可以复制 AngularJS 资源到 Spring MVC (Spring Boot) 服务器并使用它来服务 您的页面(以及其他 API),就像您所做的一样 之前。
- 让 Angular 应用程序调用 spring boot 服务(我猜,你 正在使用 $http.post 提交表单,如果是这样的话 可以只更改 URL,以便它可以访问 spring boot 应用程序。) 对于生产部署,使用 nginx/httpd 服务静态 文件(AngularJS/CSS 等)并将所有动态请求路由/代理到 Spring Boot 应用程序。
我强烈建议第三种选择。
关于spring - Angular 2, Spring boot , spring security , 登录表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39877413/