在本地应用程序中指定 JAAS 配置文件

Specifying JAAS config file in a local application

这是背景故事: 我正在做一个类似数据库的项目。我正在尝试使用 Java 身份验证和授权服务 (JAAS) 创建登录系统。我正在尝试将本教程 (https://docs.oracle.com/javase/7/docs/technotes/guides/security/jaas/tutorials/GeneralAcnOnly.html#SampleAcnClass) 与我的项目合并。

我不知道如何在我的 java 项目中指定登录配置。到目前为止,指定登录配置的 2 种方式是:

  1. 在命令行上
  2. 在 Java 证券 属性 文件中

两者都不起作用,因为我必须提交项目,因此没有机会输入命令或修改我的评分者的证券 属性 文件。

有没有其他方法可以在我的项目中指定登录配置(即在 *.java 文件中)?

TLDR:如何在我的项目中指定登录配置(*.config 文件)(*.java 个文件)?

您可以通过java.lang.System.setProperty("java.security.auth.login.config", "=<your_config_resource_url>")在运行时引用您自己的登录配置。请注意,该值的前导等号将阻止处理 java.security 文件的相应属性引用的任何其他配置。另请注意,该值为 URL,因此它不限于本地文件系统资源。

为了在运行时进行更精细的控制,您还可以通过 java.security.Security#setProperty.

修改任何 java.security 属性

作为最后的手段,当需要完全不同的语法 and/or 处理能力时,您也可以安装自己的自定义 javax.security.auth.login.Configuration,或者通过直接子 classing基础 class,或通过子classing javax.security.auth.login.ConfigurationSpi 和 wrapping/exposing 将其作为 java.security.Provider.

传递给安全运行时