Class ConfigFile

java.lang.Object
javax.security.auth.login.Configuration
com.sun.security.auth.login.ConfigFile

public class ConfigFile extends Configuration
这个类代表了javax.security.auth.login.Configuration的默认实现。

这个对象存储了运行时的登录配置表示,是多个静态登录配置文件的综合体。定位登录配置文件并将它们的信息读入这个Configuration对象的算法如下:

  1. 遍历安全属性,login.config.url.1login.config.url.2,...,login.config.url.X。每个属性值指定一个指向要加载的登录配置文件的URL。读取并加载每个配置。
  2. 系统属性java.security.auth.login.config也可以设置为指向另一个登录配置文件的URL(当用户在运行时使用-D开关时)。如果定义了此属性,并且安全属性文件允许其使用(安全属性,policy.allowSystemProperty设置为true),也加载该登录配置。
  3. 如果使用"=="定义了java.security.auth.login.config属性,则忽略所有其他指定的登录配置,只加载此配置。
  4. 如果未设置系统或安全属性,则尝试从文件${user.home}/.java.login.config中读取,其中${user.home}是由"user.home"系统属性表示的值。

此实现支持的配置语法正是javax.security.auth.login.Configuration类中指定的语法。此外,安全属性policy.expandProperties可用于控制是否展开配置文件中的系统属性。如果未设置,默认值为true,这意味着属性将被展开。

参见:
  • Constructor Details

    • ConfigFile

      public ConfigFile()
      创建一个新的Configuration对象。
      抛出:
      SecurityException - 如果无法初始化Configuration
    • ConfigFile

      public ConfigFile(URI uri)
      从指定的URI创建一个新的Configuration对象。
      参数:
      uri - URI
      抛出:
      SecurityException - 如果无法初始化Configuration
      NullPointerException - 如果uri为null
  • Method Details

    • getAppConfigurationEntry

      public AppConfigurationEntry[] getAppConfigurationEntry(String applicationName)
      使用应用程序名称作为索引从Configuration中检索条目。
      指定者:
      getAppConfigurationEntry 在类 Configuration
      参数:
      applicationName - 用于索引Configuration的名称
      返回:
      一个LoginModule的堆栈配置对应的AppConfigurationEntry数组,如果此应用程序没有配置LoginModule,则返回null。
    • refresh

      public void refresh()
      刷新并重新加载所有登录配置以重新读取Configuration
      覆盖:
      refresh 在类 Configuration
      抛出:
      SecurityException - 如果调用者没有刷新Configuration的权限