【问题标题】:Which Java modules get Spring Security哪些 Java 模块获得 Spring Security
【发布时间】:2011-02-13 01:39:28
【问题描述】:

我有一个经典的 Java SOA 应用程序,包括一个 Web UI 模块、一个 Web 服务模块、一个服务模块 (Java API)、一个域模块和一个持久性模块。从某种意义上说,这些模块中的每一个都有自己的公共 API。

我对 Spring Security 的理解是,我可以使用 web 过滤器来处理 web gui 和 web 服务的安全性,以及服务模块的方法级安全性(通过注释)。

我的问题是:我应该费心为域模块和持久性模块添加方法级别的安全性还是被认为是矫枉过正?

【问题讨论】:

  • 哪些模块是用户使用您的应用程序的边界 - Web 层?有没有用户直接使用 Java API 或持久化?
  • 不,我没有。但我想我担心的是,理论上,可以为这些 API 编写一个 Java 客户端并从他们自己的机器上运行它们。只需要数据库凭据。

标签: java security spring service dns


【解决方案1】:

如果您保护外部 API,通常不需要保护其他内部层,例如域模型或 DAO 持久层。

但这一切都取决于您的安全要求。将安全角色添加到内部 API 中的方法将使其更加安全,并且可以被视为针对公开 API 中的安全漏洞的良好防御实践。

【讨论】:

  • 听起来是个不错的做法,但可能有点矫枉过正。考虑到计算开销,我倾向于不保护内部模块。当然,我担心的是,理论上,可以为这些 API 编写一个 Java 客户端并在自己的机器上运行它。只需要数据库凭据。
  • 我同意,通常你不会保护内部 API。数据库就是这样一个内部 API,它不应该被暴露。因此,数据库端口永远不应公开访问并位于防火墙后面。
猜你喜欢
  • 2012-05-27
  • 2019-11-05
  • 2012-07-17
  • 2011-05-21
  • 2011-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多