|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjavax.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. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。