如何阻止特定组访问某些Spring应用程序上下文文件?

时间:2017-07-11 04:22:38

标签: spring maven applicationcontext

在我们的应用程序中,我们根据在Maven命令行中启动应用程序时指定的参数值启动某些Spring上下文文件。我使用参数-DEnvironment = [NameOfEnv]作为我的字段来确定启动应用程序时要使用的上下文文件。代码存储在我们的Enterprise BitBucket / Stash中。

当我们(团队A)被要求与另一个团队(团队B)共享该应用程序时,问题悄悄上升,但是,由于他们是离岸的,我们的上下文文件中的大部分数据被认为是“敏感的”,因此,他们无法访问/查看我们的应用程序上下文文件。

以下是我的意思:

AppContext File Visibility

我正在试图弄清楚如何设置B组以便能够看到两个上下文文件而不是所有文件,因为其他文件具有他们看不到的敏感数据。

以下是一些解决方案/想法:

  1. 仅使用其上下文文件创建重复的应用程序(最快和最脏,但更令人头痛)
  2. 以某种方式从他们系统上的本地位置加载上下文文件,这样他们就看不到我们的
  3. 从完全独立的存储库/项目加载上下文文件,并相应地设置权限。因此,将有两个独立的“与上下文相关的”存储库,一个用于Team A Context Files,另一个用于Team B Context Files。所以总共会有三个存储库,(1)应用程序,(2)A队的上下文文件,(3)B队的上下文文件
  4. 可能加密上下文文件,以便他们看不到实际值?
  5. 还有其他人吗?
  6. 我希望这有点清楚。

    非常感谢!

1 个答案:

答案 0 :(得分:0)

如果您为所有内容使用属性占位符,则上下文文件中应该没有任何敏感信息。

你需要做两件事:

1)为每个团队使用不同的spring profiles,以便他们根据需要拥有不同的正在运行的应用程序。

2)使用Property Placeholders允许将所有sesnitive信息添加到属性文件中,而不是直接添加到上下文文件中。

然后,您可以向团队A和团队B提供不同的属性文件,并要求他们使用来自相同代码库和相同上下文文件的不同配置文件。