|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object javax.security.auth.login.Configuration
public abstract class Configuration
这是用于表示应用程序中 LoginModules 的配置的抽象类。Configuration
指定应该将哪一个 LoginModules 用于某一特定应用程序,以及应该以什么样的顺序调用 LoginModules。需要为此抽象类创建子类,以提供能够读取和加载实际 Configuration
的实现。
登录配置包含以下信息。注意,此示例仅表示 Configuration
的默认语法。此类的子类实现可以实现替代语法,也可以从任何源(比如文件、数据库或服务器)中检索 Configuration
。
Name { ModuleClass Flag ModuleOptions; ModuleClass Flag ModuleOptions; ModuleClass Flag ModuleOptions; }; Name { ModuleClass Flag ModuleOptions; ModuleClass Flag ModuleOptions; }; other { ModuleClass Flag ModuleOptions; ModuleClass Flag ModuleOptions; };
Configuration
中的每个条目都是通过应用程序名(Name)进行索引的,并且每个条目都包含为该应用程序配置的 LoginModules 的列表。每个 LoginModule
都是通过其完全限定类名来指定的。身份验证是按指定的具体顺序沿着模块列表向下进行。如果应用程序没有特定条目,则验证的条目默认为用于“其他方面”的特定条目。
当顺着堆栈往下进行身份验证时,Flag 值控制整个行为。下面是 Flag 的有效值的描述和它们各自的语义:
1) Required - 要求 LoginModule 成功。 不管它成功或失败,身份验证都将沿着 LoginModule 列表继续向下进行。 2) Requisite - 要求 LoginModule 成功。 如果它成功,则身份验证沿着 LoginModule 列表继续向下进行。 如果它失败,则该控制立即返回给应用程序(身份验证不再沿着 LoginModule 列表继续向下进行)。 3) Sufficient - 不要求 LoginModule 成功。 如果成功,则控制立即返回到应用程序(身份验证不再沿着 LoginModule 列表继续向下进行)。 如果失败,则身份验证沿着 LoginModule 列表继续向下进行。 4) Optional - 不要求 LoginModule 成功。 不管它成功或失败,身份验证都将沿着 LoginModule 列表继续向下进行。
仅在所有 Required 和 Requisite LoginModules 成功时,整个身份验证才成功。如果配置了 Sufficient LoginModule
并且获得成功,则只要 Sufficient LoginModule
之前的 Required 和 Requisite LoginModules 是成功的,整个身份验证就会成功。如果没有为应用程序配置 Required 或 Requisite LoginModules,那么至少有一个 Sufficient 或 Optional LoginModule
必须成功。
ModuleOptions 是特定于 LoginModule
的值的空格隔开列表,这些值被直接传递给基础 LoginModules。这些选项由 LoginModule
自身定义,并在其自身中控制它的行为。例如,LoginModule
可以定义一些选项,以便支持调试/测试功能。在 Configuration
中指定选项的正确方法是使用如下的键-值对:debug="true"。键和值应该用等号分隔,值应该用双引号括起来。如果在值中出现 ${system.property} 形式的 String,则将它扩展为系统属性值。注意,对 LoginModule
可以定义的选项个数的没有限制。
下面展示基于以上语法的示例 Configuration
条目:
Login { com.sun.security.auth.module.UnixLoginModule required; com.sun.security.auth.module.Krb5LoginModule optional useTicketCache="true" ticketCache="${user.home}${/}tickets"; };
此 Configuration
指定一个名称为 "Login" 的应用程序,要求用户首先对 com.sun.security.auth.module.UnixLoginModule 进行身份验证,该验证必须成功。即使 UnixLoginModule 身份验证失败,com.sun.security.auth.module.Krb5LoginModule 仍将被调用。这有助于隐藏失败源。由于 Krb5LoginModule 是 Optional,所以仅在 UnixLoginModule (Required) 成功时,整个身份验证才获得成功。
还要注意的是,特定于 LoginModule 的选项 useTicketCache="true" 和 ticketCache=${user.home}${/}tickets" 被传递到 Krb5LoginModule。这些选项指示 Krb5LoginModule 使用指定位置处缓存的票据。系统属性 user.home 和 / (file.separator) 扩展成它们各自的值。
通过将 "login.configuration.provider" 的安全属性(在 Java 安全属性文件中)的值设置为所需的 Configuration 实现类的完全限定名,可以更改默认的 Configuration 实现。Java 安全属性文件位于名称为 <JAVA_HOME>/lib/security/java.security 文件中,其中 <JAVA_HOME> 是指安装 JDK 的目录。
LoginContext
构造方法摘要 | |
---|---|
protected |
Configuration()
唯一的构造方法。 |
方法摘要 | |
---|---|
abstract AppConfigurationEntry[] |
getAppConfigurationEntry(String name)
为此 Configuration 中的 name 检索 AppConfigurationEntries。 |
static Configuration |
getConfiguration()
获取 Login Configuration。 |
abstract void |
refresh()
刷新和重新加载 Configuration。 |
static void |
setConfiguration(Configuration configuration)
设置 Login Configuration 。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
protected Configuration()
方法详细信息 |
---|
public static Configuration getConfiguration()
Configuration.setConfiguration
方法设置的,则返回该对象。否则返回默认的 Configuration 对象。
SecurityException
- 如果调用方没有检索此 Configuration 的权限。setConfiguration(javax.security.auth.login.Configuration)
public static void setConfiguration(Configuration configuration)
Configuration
。
configuration
- 新的 Configuration
SecurityException
- 如果当前线程没有设置 Configuration
的 Permission。getConfiguration()
public abstract AppConfigurationEntry[] getAppConfigurationEntry(String name)
name
- 用于索引 Configuration 的名称。
public abstract void refresh()
此方法导致此 Configuration 对象以与实现有关的方式刷新/重新加载其内容。例如,如果此 Configuration 对象将其条目存储在文件中,则调用 refresh
可能导致重新读取该文件。
SecurityException
- 如果调用方没有刷新此 Configuration 的权限。
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。