【问题标题】:Don't REST control a URL in Spring Boot? Exclude url?在 Spring Boot 中不要 REST 控制 URL?排除网址?
【发布时间】:2017-04-13 16:52:31
【问题描述】:

我在某些地方使用了一些有角的 ui 路由,我希望 java 服务器不控制某些 url。

也许在其他地方运行 java 应用程序更有意义?我在同一个 url 中有 angularJS 的原因是因为我的 springboot 应用程序有一些身份验证检查。所以我想要控制大多数 URL。

但有一些地方我可能想要控制身份验证——但不是模板。

我认为我的问题是我的 Spring Boot 代码正在尝试使用速度,而其中一些 URL 应该只是转发到 AngularJS 路由。

所以一个 URL=/myreport/

--> 转到 Java 404 错误,而不是仅仅转发到 Angular UI Routing

--> 但在某些情况下,Java 应该返回 404/500/403 等

有没有办法像 RestController 一样在身份验证后转发给 AngularJS?还是禁用速度??

【问题讨论】:

    标签: java spring-boot


    【解决方案1】:

    如果您将 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_part1http://chariotsolutions.com/blog/post/angular-2-spring-boot-jwt-cors_part2

    【讨论】:

    • 对。但是假设我有一个网络服务器。我在同一台服务器上有角度代码和 Spring Boot。现在我将如何阻止 Spring Boot 控制或(或者代理 Spring Boot 以仅基于某些 URL 转发到 AngularJS 前端)。像 /oauth 可能会使用 Spring boot,但 /myreport 会使用 angularJS。
    • 您可以将 API (Spring Boot) 放在不同的端口或子域上
    猜你喜欢
    • 1970-01-01
    • 2019-02-09
    • 2019-03-04
    • 1970-01-01
    • 2016-09-18
    • 2020-01-24
    • 2020-12-21
    • 2021-08-13
    • 1970-01-01
    相关资源
    最近更新 更多