spring - Angular 2, Spring boot , spring security , 登录表单

标签 spring angular spring-boot spring-security

我有一个运行在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 提供服务。 您在这里有几个选择。

  1. 登录可以在 NodeJS 服务器上处理,后者又可以调用 用于身份验证和授权的 Spring Boot 应用程序。(我认为,您可能需要做一些调整,例如使用快速服务器而不是精简服务器。在这里查看 https://stackoverflow.com/a/37561973/6785908)

  2. 初步开发后,您可以复制 AngularJS 资源到 Spring MVC (Spring Boot) 服务器并使用它来服务 您的页面(以及其他 API),就像您所做的一样 之前。

  3. 让 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/

相关文章:

angular - 错误 错误 : mat-menu-trigger: must pass in an mat-menu instance

javascript - 通过拖动 div 的边缘水平调整 div 的大小

angular - Angular 路由 - 路径顺序重要吗?

java - QueryDSL 多参数搜索,同时在值为 null 时构建查询跳过谓词

docker - 从一个 Docker 容器连接到另一个 Docker 容器

java - 如何在功能/单元测试中传递查询/路径参数?

java - Spring JSON View

json - Spring REST Controller 返回空的 JSON。可迭代的数据结构。为什么?

spring-boot - Spring Boot应用程序无法自动连接假客户端

spring - 将一些堆栈跟踪信息放入自定义 tomcat 错误 500 页面