【问题标题】:deployment of spring boot and spring security in one project在一个项目中部署spring boot和spring security
【发布时间】:2017-10-31 07:03:06
【问题描述】:

我获得了 Spring Boot JWT 身份验证服务,并被要求使用它来保护我目前正在构建的 Restful Web 服务。在spring.io 教程之后,我收集到您可以在一个项目中构建多个 Spring Boot 应用程序。具体来说,securityrest 这两个模块各有一个 Application.java 类来启动应用程序。我不清楚的是

  1. 我可以假设如果两个应用程序在同一个服务器上启动,调用 rest 控制器 将被安全应用程序自动拦截以检查身份验证/授权。如果是这种情况,那么我假设不需要在安全性或其余部分进行进一步的代码修改?
  2. 我假设上面第 1 点中的每个应用程序在部署到服务器时都可以单独启动,而在 IDE 中,两者会同时启动?

  3. 如果我要在两个单独的服务器上运行,其余的 api 调用是否需要转移到安全性?架构是什么样的,任何示例都将不胜感激?

【问题讨论】:

  • 我认为你把一些事情搞混了。如果您有 2 个应用程序,则无论它们如何部署,它们都是独立的。此外,通常您没有“安全”模块,因为安全将是您的应用程序的配置,而不是单独的模块。
  • @dunni,在指向他们的github项目的spring io链接中,他们有带有自己的pom的rest文件夹和另一个带有自己的pom的安全文件夹,所以它告诉我它是2个独立的模块。
  • 这是 2 个完全独立的微服务。一种是提供安全性的东西(在您的情况下是给定的 JWT 身份验证服务),另一种是使用它来验证用户(其余模块,或者在您的情况下是 RESTful Web 服务)。但我会尽力回答你的观点。
  • 所以这向我表明架构是微服务——这是前进的方向。是这样吗?
  • 这取决于您的用例。微服务并不适合一切。您必须决定它是否适合您的需求。

标签: java spring spring-mvc spring-boot spring-security


【解决方案1】:
  1. 没有。如果您有两个完全独立的应用程序,则对一个应用程序的请求不会被来自第二个应用程序的任何代码拦截。如果您想在 REST 服务中进行安全配置,则必须为此进行配置。 Spring Security 提供了必要的机制。安全应用程序用于保存用于身份验证的数据,例如存储用户名和密码并提供检查两者的机制。但是,如果您想保护其他应用程序的端点,则必须适当地配置这些应用程序。

  2. 不一定。如果要在 IDE 中运行这两个应用程序,则必须启动这两个应用程序。

  3. 这真的取决于您使用什么安全机制。如果你使用例如OAuth,对服务的请求要么需要令牌,然后使用安全服务进行验证,要么(如果是带有 GUI 的 Web 应用程序)将被重定向到安全服务以登录,然后重定向回 Web 应用程序使用令牌,然后可以进一步使用。

【讨论】:

    猜你喜欢
    • 2014-07-15
    • 1970-01-01
    • 2018-07-05
    • 2019-01-28
    • 2018-07-24
    • 2020-03-30
    • 1970-01-01
    • 2022-06-12
    • 2017-02-02
    相关资源
    最近更新 更多