附录 A. 参考
A.1. 包括的验证模块 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
		JBoss EAP 包含了下面的验证模块。其中一些模块处理授权以及验证。它们通常含有 
Code 名称里的 Role。
	
		当你配置这些模块时,请使用 
Code 值或完整名称(软件包限定)来引用模块。
	验证模块
| 代码 |  Client
					 | 
| 分类 |  org.jboss.security.ClientLoginModule
					 | 
| 描述 |   
						这个登录模块的目的是当 JBoss EAP 充当客户时建立调用者标识符和凭证。它不应该作为用于实际的服务器验证的安全域的一部分。
					 
					  | 
| 选项 | 类型 | 默认 | 描述 | 
|---|---|---|---|
 multi-threaded  |  true 或 false
					 |  false
					 |   
						如果每个线程都有自己的 principal 和凭证存储,请将其设置为 true。false 则指定虚拟机里的所有线程都共享系统的标识符和凭证。
					 
					  | 
 password-stacking
					 |  useFirstPass 或 false
					 |  false
					 |   
						设置为 useFirstPass 表示这个登录模块应该寻找存储在 LoginContext 里的信息以用作标识符。当堆积这个登录模块和其他模块时可以使用这个选项。
					 
					  | 
 >restore-login-identity
					 |  true 或 false
					 |  false
					 |   
						如果在 login() 方法的开始遇到的标识符和凭证在 logout() 被调用后要重新存储,请将其设置为 true。
					 
					  | 
| 代码 |  Certificate
					 | 
| 分类 |  org.jboss.security.auth.spi.BaseCertLoginModule
					 | 
| 描述 |   
						这个登录模块的目的是基于  
					 X509 Certificates 验证用户。其中一个用例是 web 应用程序的 CLIENT-CERT 验证。
					 | 
| 选项 | 类型 | 默认 | 描述 | 
|---|---|---|---|
 securityDomain
					 | 串 |   
						无
					 
					  |   
						具有持有信任证书的信任库的 JSSE 配置的安全域的名称。
					 
					  | 
 verifier
					 | 分类 |   
						无
					 
					  |   
						用户登录证书检验的  
					 org.jboss.security.auth.certs.X509CertificateVerifier 的类名。
					 | 
| 代码 |  CertificateUsers
					 | 
| 分类 |  org.jboss.security.auth.spi.UsersRolesLoginModule
					 | 
| 描述 |   
						使用属性资源。第一个映射用户名和密码,第二个映射用户名和角色。
					 
					  | 
| 选项 | 类型 | 默认 | 描述 | 
|---|---|---|---|
 unauthenticatedIdentity
					 | 字符串 |   
						无
					 
					  |   
						定义应该分配给不包含验证信息的请求的 principal 名称。这允许不受保护的 servlet 调用不要求专有角色的 EJB 上的方法。这样的 principal 没有关联的角色且只访问未设置安全性的 EJB 或者和  
					 unchecked permission 约束关联的 EJB。
					 | 
 password-stacking
					 |  useFirstPass 或 false
					 |  false
					 |   
						设置为  
					 useFirstPass 表示这个登录模块应该寻找存储在 LoginContext 里的信息以用作标识符。当堆积这个登录模块和其他模块时可以使用这个选项。
					 | 
 hashAlgorithm  | 字符串 |   
						无
					 
					  |   
						用于 hash 密码的  
					 java.security.MessageDigest 算法的名称。这个选项没有默认值,你必须显性地设置它来启用哈希算法。当指定了哈希算法时,CallbackHandler 里包含的明文密码将在作为 inputPassword 参数传递给 UsernamePasswordLoginModule.validatePassword 前进行 hash。保存在 users.properties 文件里的密码必须进行同等的 hash。关于 java.security.MessageDigest 和这个类支持的算法的更多信息,请参考 http://docs.oracle.com/javase/6/docs/api/java/security/MessageDigest.html。
					 | 
 hashEncoding
					 |  base64 或 hex
					 |  base64
					 |   
						如果设置了  
					 hashAlgorithm,哈希密码的字符串格式。
					 | 
 hashCharSet
					 | 字符串 |   
						容器的环境里的默认编码集。
					 
					  |   
						将明文密码转换为字节队列的编码。
					 
					  | 
 usersProperties
					 |   
						属性文件或资源的全限定文件路径
					 
					  |  users.properties
					 |   
						包含用户和密码间映射的文件。这个文件里的每个属性的格式都是  
					 username=password。
					 | 
 rolesProperties
					 | 属性文件或资源的全限定文件路径 |  roles.properties
					 |   
						包含用户和密码间角色的文件。这个文件里的每个属性的格式都是  
					 username=role1,role2,...,roleN。
					 | 
 ignorePasswordCase
					 |  true 或 false
					 |  false
					 |   
						密码的比较是否应该忽略大小写。当哈希密码不明显时这对于编码是很重要的。
					 
					  | 
 principalClass
					 | 全限定类名。 |   
						无
					 
					  |   
						包含一个将 String 参数用作 principal 名称的构造器的  
					 Principal 实现类。
					 | 
 roleGroupSeparator
					 |   
						单个字符
					 
					  |  . (单一句号)
					 |   
						用来将用户名从  
					 rolesGroup 文件里的角色组名里分离的字符。
					 | 
 defaultUsersProperties
					 | 串 |  defaultUsers.properties
					 |   
						如果未找到 usersProperties 文件所使用的资源或文件的名称。
					 
					  | 
 defaultRolesProperties
					 | 串 |  defaultRoles.properties
					 |   
						如果未找到  
					 rolesProperties 文件所使用的资源或文件的名称。
					 | 
 hashUserPassword
					 |  true 或 false
					 |  true
					 |   
						当指定了  
					 hashAlgorithm 时是否 hash 用户输入的密码。默认为 true。
					 | 
 hashStorePassword
					 |  true 或 false
					 |  true
					 |   
						当指定了  
					 hashAlgorithm 时是否 hash 从 getUsersPassword() 返回的存储密码。
					 | 
 digestCallback
					 | 全限定类名。 |   
						无
					 
					  |   
						包含 pre 或 post 摘要内容(如 salt 值)的  
					 org.jboss.crypto.digest.DigestCallback 实现的类名。它只有在指定了 hashAlgorithm 时才被使用。
					 | 
 storeDigestCallback
					 | 全限定类名。 |   
						无
					 
					  |   
						包含 pre 或 post 摘要内容(如哈希存储密码的 salt 值)的  
					 org.jboss.crypto.digest.DigestCallback 实现的类名。它只有在 hashStorePassword 为 true 且指定了 hashAlgorithm 时才被使用。
					 | 
 callback.option.STRING
					 | 不同的 | 无 |   
						所有以  
					 callback.option. 为前缀的选项都会传递给 DigestCallback.init(Map) 方法。收入用户名总是通过 javax.security.auth.login.name 选项传递的,而输入/存储密码是通过 digestCallback 或 storeDigestCallback 的 javax.security.auth.login.password 选项来传递的。
					 | 
| 代码 |  CertificateRoles
					 | 
| 分类 |  org.jboss.security.auth.spi.CertRolesLoginModule
					 | 
| 描述 |   
						这个登录模块扩展了 Certificate 登录模块以从属性文件添加角色映射能力。它使用和 Certificate 登录模块相同的所有选项,并添加了如下选项。
					 
					  | 
| 选项 | 类型 | 默认 | 描述 | 
|---|---|---|---|
 rolesProperties
					 | 字符串 |  roles.properties
					 |   
						包含分配给每个用户的资源或文件的名称。角色属性文件里的格式必须是 username=role1,role2,其中 username 是证书的 DN,不包括任何  
					 
=(等号)和空格字符。下面的例子是正确的格式:
					CN\=unit-tests-client,\ OU\=Red\ Hat\ Inc.,\ O\=Red\ Hat\ Inc.,\ ST\=North\ Carolina,\ C\=US=JBossAdmin 
 | 
 defaultRolesProperties
					 | 字符串 |  defaultRoles.properties
					 |   
						如果未找到  
					 rolesProperties 文件所使用的资源或文件的名称。
					 | 
 roleGroupSeparator
					 | 单个字符 |  . (单一句号)
					 |   
						作为  
					 roleProperties 文件里的角色组分隔符的字符。
					 | 
| 代码 |  Database  | 
| 分类 |  org.jboss.security.auth.spi.DatabaseServerLoginModule
					 | 
| 描述 |   
						支持验证和角色映射的基于 JDBC 的登录模块。这基于具有下列定义的两个逻辑表。
					 
					 
  | 
| 选项 | 类型 | 默认 | 描述 | 
|---|---|---|---|
 dsJndiName
					 | JNDI 资源 |   
						无
					 
					  |   
						保存验证信息的 JNDI 资源的名称。这个选项是必需的。
					 
					  | 
 principalsQuery
					 | prepared SQL 语句 |  select Password from Principals where PrincipalID=?
					 |   
						获取 principal 的信息的 prepared SQL 查询。
					 
					  | 
 rolesQuery
					 | prepared SQL 语句 |  select Role, RoleGroup from Roles where PrincipalID=?
					 |   
						获取角色信息的 prepared SQL 查询。它应该和  
					 select Role, RoleGroup from Roles where PrincipalID=? 相等,这里的 Role 是角色名称而 RoleGroup 的值总是带有大写 R 的 Roles 或 CallerPrincipal。
					 | 
| 代码 |  DatabaseCertificate
					 | 
| 分类 |  org.jboss.security.auth.spi.DatabaseCertLoginModule
					 | 
| 描述 |   
						这个登录模块扩展了 Certificate 登录模块以从数据库表添加角色映射能力。它使用和 Certificate 登录模块相同的所有选项,并添加了如下选项。
					 
					  | 
| 选项 | 类型 | 默认 | 描述 | 
|---|---|---|---|
 dsJndiName
					 | JNDI 资源 |  
					 |   
						保存验证信息的 JNDI 资源的名称。这个选项是必需的。
					 
					  | 
 rolesQuery
					 | prepared SQL 语句 |  select Role,RoleGroup from Roles where PrincipalID=?
					 |   
						为了映射角色的 prepared SQL 语句。它应该和  
					 select Role, RoleGroup from Roles where PrincipalID=? 相等,这里的 Role 是角色名称而 RoleGroup 的值总是带有大写 R 的 Roles 或 CallerPrincipal。
					 | 
 suspendResume
					 |  true 或 false
					 |  true
					 |   
						在数据库操作期间现有的 JTA 事务是否应该被暂停。
					 
					  | 
| 代码 |  Identity
					 | 
| 分类 |  org.jboss.security.auth.spi.IdentityLoginModule
					 | 
| 描述 |   
						关联这个模块选项里指定的 principal 和任何针对这个模块验证的主题。所使用的 Principal 类的类型是  
					 org.jboss.security.SimplePrincipal。如果没有指定 principal 选项,那使用的名称是 guest。
					 | 
| 选项 | 类型 | 默认 | 描述 | 
|---|---|---|---|
 principal
					 | 字符串 |  guest
					 |   
						用于 principal 的名称。
					 
					  | 
 roles
					 | 用逗号隔开的字符串的列表 |   
						无
					 
					  |   
						将分配给主题的用逗号隔开的角色列表。
					 
					  | 
| 代码 |  Ldap
					 | 
| 分类 |  org.jboss.security.auth.spi.LdapLoginModule
					 | 
| 描述 |   
						当用户名和密码存储在可通过 JNDI LDAP 供应商访问的 LDAP 服务器上时进行的验证。许多选项不是必需的,因为它们可由 LDAP 供应商或系统环境来决定。
					 
					  | 
| 选项 | 类型 | 默认 | 描述 | 
|---|---|---|---|
 java.naming.factory.initial
					 | 类名 |  com.sun.jndi.ldap.LdapCtxFactory
					 |  InitialContextFactory 实现的类名。
					 | 
 java.naming.provider.url
					 |  ldap:// URL
					 |   
						无
					 
					  |   
						LDAP 服务器的 URL。
					 
					  | 
 java.naming.security.authentication
					 |  none、simple 或 SASL 机制的名称。
					 |  simple
					 |   
						用于绑定 LDAP 服务器的安全级别。
					 
					  | 
 java.naming.security.protocol
					 | 传输协议 |   
						如果未指定,则由供应商决定。
					 
					  |   
						用于安全访问的传输协议,如 SSL。
					 
					  | 
 java.naming.security.principal
					 | 字符串 |   
						无
					 
					  |   
						用于验证调用者的 principal 的名称。它是根据下面描述的属性构建的。
					 
					  | 
 java.naming.security.credentials
					 | 凭证类型 |   
						无
					 
					  |   
						验证模式使用的凭证类型。其中一些例子包括哈希密码、明文密码、密钥或证书。如果没有指定这个属性,其行为将由服务供应商决定。
					 
					  | 
 principalDNPrefix
					 | 字符串 |   
						无
					 
					  |   
						添加到用户名以组成用户 DN 的前缀。你可以提示用户输入用户名并使用  
					 principalDNPrefix 和 principalDNSuffix 构建全限定 DN。
					 | 
 principalDNSuffix
					 | 串 |  
					 |   
						添加到用户名以组成用户 DN 的后缀。你可以提示用户输入用户名并使用  
					 principalDNPrefix 和 principalDNSuffix 构建全限定 DN。
					 | 
 useObjectCredential
					 |  true 或 false
					 |   
						false
					 
					  |   
						凭证是否应该用  
					 org.jboss.security.auth.callback.ObjectCallback 类型的回调方法作为不透明的对象、还是用 JAAS PasswordCallback 作为字符数组密码获得。这允许传递非字符数组的凭证信息到 LDAP 服务器。
					 | 
 rolesCtxDN
					 | 全限定的 DN |   
						无
					 
					  |   
						用于搜索用户角色的上下文的全限定 DN。
					 
					  | 
 userRolesCtxDNAttributeName
					 |   
						属性
					 
					  |   
						无
					 
					  |   
						包含搜索用户角色的上下文 DN 的用户对象里的属性。它和  
					 rolesCtxDN 的区别是搜索用户角色的上下文可能对于每个用户都是唯一的。
					 | 
 rolesAttributeID
					 | 属性 |  roles
					 |   
						包含用户角色的属性的名称。
					 
					  | 
 rolesAttributeIsDN
					 |  true 或 false
					 |  false
					 |  roleAttributeID 是否包含角色对象的全限定 DN。如果为 false,角色名将从上下文名称的 roleNameAttributeId 属性值里获取。某些目录模式,如 Microsoft Active Directory,要求这个属性的值为 true。
					 | 
 rolesNameAttributeID
					 | 属性 |  group
					 |   
						包含角色名称的  
					 roleCtxDN 上下文里的属性的名称。如果 roleAttributeIsDN 属性为 true,这个属性将被用来查找角色对象的 name 属性。
					 | 
 uidAttributeID
					 | 属性 |  uid
					 |  UserRolesAttributeDN 里对应用户 ID 的属性的名称。它被用来定位用户角色。
					 | 
 matchOnUserDN
					 |  true 或 false
					 |  false
					 |   
						对用户角色搜索是否应该匹配用户的全限定 DN 或只是用户名而已。如果为 
					 true,完整的用户 DN 将作为匹配值。如果为 false,则只使用用户名来匹配 uidAttributeName 属性。
					 | 
 allowEmptyPasswords
					 |  true 或 false
					 |  true
					 |   
						是否允许空的密码。多数 LDAP 服务器将空密码视同匿名登录尝试。要拒绝空密码,请将它设置为 false。
					 
					  | 
| 代码 |  LdapExtended
					 | 
| 分类 |  org.jboss.security.auth.spi.LdapExtLoginModule
					 | 
| 描述 |   
						另外的一个使用搜索来定位绑定用户和关联角色的 LDAP 登录模块实现。角色队列递归地解析 DN 来导航分层的角色结构。它使用和 LDAP 模块相同的  
					 java.naming 选项以及下列 LDAP 模块没有的选项。
					
						这个验证以两步进行:
					 
					 
  | 
| 选项 | 类型 | 默认 | 描述 | 
|---|---|---|---|
 baseCtxDN
					 | 全限定的 DN |   
						无
					 
					  |   
						开始用户搜索的顶层上下文的固定 DN。
					 
					  | 
 bindDN
					 | 全限定的 DN |   
						无
					 
					  |   
						用户和角色查询里用来绑定 LDAP 服务器的 DN。这个 DN 需要读取和搜索  
					 baseCtxDN 和 rolesCtxDN 值上的权限。
					 | 
 bindCredential
					 | 字符串,可以进行加密。 |   
						无
					 
					  |   
						用于  
					 bindDN 的密码。如果指定了 jaasSecurityDomain,它可以被加密。
					 | 
 jaasSecurityDomain
					 | JMX ObjectName |   
						无
					 
					  |   
						用来解密  
					 bindCredential 的 JaasSecurityDomain 的 JMX ObjectName。密码的解密使用 JaasSecurityDomain.encrypt64(byte[]) 方法返回的格式。
					 | 
 baseFilter
					 | LDAP 过滤器字符串 |   
						无
					 
					  |   
						用来定位要验证的用户的上下文的搜索过滤器。从登录模块回调方法里获得的输入用户名或用户 DN 将替换至过滤器里的  
					 {0} 表达式。搜索过滤器的一个常见例子是 (uid={0})。
					 | 
 rolesCtxDN
					 | 全限定的 DN |   
						无
					 
					  |   
						用于搜索用户角色的上下文的固定 DN。这不是实际角色的 DN,它是包含用户角色的对象所在的 DN。例如,在 Microsoft Active Directory 服务器里,它是用户帐号所在的 DN。
					 
					  | 
 roleFilter
					 | LDAP 过滤器字符串 |  
					 |   
						用来定位和验证用户相关联的角色的搜索过滤器。从登录模块回调方法里获得的输入用户名和用户 DN 将被替换过滤器里的  
					 {0} 表达式。已验证的用户 DN 将替换过滤器里的 {1} 表达式。匹配输入用户名的搜索过滤器示例是 (member={0})。对应已验证的用户 DN 的例子是 (member={1})。
					 | 
 roleAttributeIsDN  |  true 或 false
					 |  false
					 |  roleAttributeID 是否包含角色对象的全限定 DN。如果为 false,角色名将从上下文名称的 roleNameAttributeId 属性值里获取。某些目录模式,如 Microsoft Active Directory,要求这个属性的值为 true。
					 | 
 defaultRole
					 |   
						角色名称
					 
					  |   
						无
					 
					  |   
						用于所有已验证用户的角色
					 
					  | 
 parseRoleNameFromDN
					 |  true 或 false
					 |  false
					 |   
						指定查询返回的 DN 是否包含 roleNameAttributeID。如果设置为  
					 true,将检查 DN 里是否有 roleNameATtributeID,如果为 false,将不会检查。这个标记可以提高 LDAP 查询的性能。
					 | 
 parseUsername
					 |  true 或 false
					 |  false
					 |   
						指定 DN 是否对用户名进行解析的标记。如果为  
					 true,DN 将对用户名进行解析。如果为 false,DN 将不对用户名进行解析。这个选项是和 usernameBeginString 及 usernameEndString 一起使用的。
					 | 
 usernameBeginString
					 |   
						字符串
					 
					  |   
						无
					 
					  |   
						定义将从 DN 的开头删除以显示用户名的字符串。这个选项是和  
					 usernameEndString 一起使用的。
					 | 
 usernameEndString
					 |   
						字符串
					 
					  |   
						无
					 
					  |   
						定义将从 DN 的结尾删除以显示用户名的字符串。这个选项是和  
					 usernameBeginString 一起使用的。
					 | 
 roleNameAttributeID
					 | 属性 |  group
					 |   
						包含角色名称的  
					 roleCtxDN 上下文里的属性的名称。如果 roleAttributeIsDN 属性为 true,这个属性将被用来查找角色对象的 name 属性。
					 | 
 distinguishedNameAttribute
					 | 属性 |  distinguishedName
					 |   
						包含用户 DN 的用户条目里的属性的名称。如果用户自身的 DN 包含特殊字符(如反斜杠)而阻止了正确的用户映射,这就是有必要的。如果这个属性不存在,条目的 DN 将会被使用。
					 
					  | 
 roleRecursion
					 | 整数 |  0
					 |   
						角色搜索的递归级别数。禁用递归可将其设置为  
					 0。
					 | 
 searchTimeLimit
					 | 整数 |  10000 (10 秒)
					 |   
						用户或角色搜索的超时时间(毫秒)。
					 
					  | 
 searchScope
					 |  OBJECT_SCOPE, ONELEVEL_SCOPE, SUBTREE_SCOPE 中的一个
					 |  SUBTREE_SCOPE
					 |   
						使用的搜索作用域
					 
					  | 
 allowEmptyPasswords
					 |  true 或 false
					 |  true
					 |   
						是否允许空的密码。多数 LDAP 服务器将空密码视同匿名登录尝试。要拒绝空密码,请将它设置为 false。
					 
					  | 
| 代码 |  RoleMapping
					 | 
| 分类 |  org.jboss.security.auth.spi.RoleMappingLoginModule
					 | 
| 描述 |   
						映射作为验证过程的最终结果的角色到声明式角色。当你添加这个模块到安全域里时,它必须标记为  
					 optional。
					 | 
| 选项 | 类型 | 默认 | 描述 | 
|---|---|---|---|
 rolesProperties
					 | 属性文件或资源的全限定文件路径 |  roles.properties
					 |   
						映射角色到替代角色的属性文件或资源的全限定文件路径。其格式是  
					 original_role=role1,role2,role3。
					 | 
 replaceRole
					 |  true 或 false
					 |  false
					 |   
						是否添加当前的角色,或者用映射的角色替换当前的角色。设为  
					 true 则进行替换。
					 | 
| 代码 |  RunAs
					 | 
| 分类 |  Class: org.jboss.security.auth.spi.RunAsLoginModule
					 | 
| 描述 |   
						这是一个 Helper 模块,它在验证的登录阶段将  
					 run as 角色推入栈,并在提交或中止阶段从栈里弹出 run as 角色。这个登录模块为其他必须访问安全资源以执行验证的登录模块(如访问安全 EJB 的登录模块)提供了一个角色。在要求 run as 角色的登录模块建立之前,你必须先配置好 RunAsLoginModule。
					 | 
| 选项 | 类型 | 默认 | 描述 | 
|---|---|---|---|
 roleName
					 | 角色名称 |  nobody
					 |   
						在登录阶段用作  
					 run as 角色的角色的名称。
					 | 
| 代码 |  Simple
					 | 
| 分类 |  org.jboss.security.auth.spi.SimpleServerLoginModule
					 | 
| 描述 |   
						用于测试目的的快速设置安全性的模块。它实现了下列简单的算法:
					 
					 
  | 
Simple 模块选项
			Simple 模块没有选项。
		
| 代码 |  ConfiguredIdentity
					 | 
| 分类 |  org.picketbox.datasource.security.ConfiguredIdentityLoginModule
					 | 
| 描述 |   
						关联这个模块选项里指定的 principal 和任何针对这个模块验证的主题。所使用的 Principal 类的类型是  
					 org.jboss.security.SimplePrincipal。
					 | 
| 选项 | 类型 | 默认 | 描述 | 
|---|---|---|---|
 principal
					 | principal 的名称。 |  guest
					 |   
						将和针对这个模块验证的任何主题关联的 principal。
					 
					  | 
| 代码 |  SecureIdentity
					 | 
| 分类 |  org.picketbox.datasource.security.SecureIdentityLoginModule
					 | 
| 描述 |   
						提供这个模块只是为了和之前的系统兼容。它允许你加密密码并和静态 principal 一起使用这个密码。如果你的应用程序使用了  
					 SecureIdentity,请考虑使用密码库机制。
					 | 
| 选项 | 类型 | 默认 | 描述 | 
|---|---|---|---|
 username
					 | 串 | 无 | 用于验证的用户名。 | 
 password
					 | 加密的字符串 | 无 |   
						用于验证的密码。要加密这个密码,请在命令行直接使用这个模块。
					 
					 
java org.picketbox.datasource.security.SecureIdentityLoginModule password_to_encrypt 
						将这个命令的运行结果粘贴到模块选项的 value 字段。
					 
					  | 
 managedConnectionFactoryName
					 | JCA 资源 | 无 |   
						数据源的 JCA 连接工厂的名称。
					 
					  | 
| 代码 |  PropertiesUsers
					 | 
| 分类 |  org.jboss.security.auth.spi.PropertiesUsersLoginModule
					 | 
| 描述 |   
						使用一个属性文件来存储用户名和密码。它没有提供授权(角色映射)。这个模块只适合于测试用途。
					 
					  | 
| 选项 | 类型 | 默认 | 描述 | 
|---|---|---|---|
 properties
					 | Java 属性文件或资源的全限定文件路径和名称。 | 无 |   
						用于验证的包含用户名和明文密码的属性文件。
					 
					  | 
| 代码 |  SimpleUsers
					 | 
| 分类 |  org.jboss.security.auth.spi.SimpleUsersLoginModule
					 | 
| 描述 |   
						这个登录模块在一个 Java 属性文件里保存了用户名和明文密码。这只是用于测试目的,不适合用于产品环境里。
					 
					  | 
| 选项 | 类型 | 默认 | 描述 | 
|---|---|---|---|
 username
					 | 串 | 无 | 用于验证的用户名。 | 
 password
					 | 串 | 无 | 用于验证的明文密码。 | 
| 代码 |  LdapUsers
					 | 
| 分类 |  org.jboss.security.auth.spi.LdapUsersLoginModule
					 | 
| 描述 |  LdapUsers 模块被 ExtendedLDAP 和 AdvancedLdap 模块取代。
					 | 
| 代码 |  Kerberos
					 | 
| 分类 |  com.sun.security.auth.module.Krb5LoginModule
					 | 
| 描述 |   
						用 GSSAPI 执行Kerberos 登录验证。这个模块不是 Sun Microsystems 提供的 API 里的安全框架的一部分。细节可以在 http://docs.oracle.com/javase/1.4.2/docs/guide/security/jaas/spec/com/sun/security/auth/module/Krb5LoginModule.html 里找到。这个模块需要和另外一个处理验证和角色映射的模块配对。
					 
					  | 
| 选项 | 类型 | 默认 | 描述 | 
|---|---|---|---|
 storekey
					 |  true 或 false
					 | false |   
						是否添加  
					 KerberosKey 到主题的私有凭证。
					 | 
 doNotPrompt
					 |  true 或 false
					 | false |   
						如果设置为  
					 true,用户将不会被提示输入密码。
					 | 
 useTicketCache
					 |   
						布尔值, 
					 . true 或 false。
					 | false |   
						如果为  
					 true,GTG 将从票据缓存里获取。如果为 false,将不会使用票据缓存。
					 | 
 ticketcache
					 | 代表 Kerberos 票据缓存的文件或资源。 |   
						默认值取决于你所使用的操作系统。
					 
					 
  | 票据缓存的位置。 | 
 useKeyTab
					 |  true 或 false
					 | false | 是否从密钥表文件里获取 principal 的密钥。 | 
 keytab
					 | 代表 Kerberos keytab 的文件或资源。 |   
						操作系统的 Kerberos 配置文件的位置,或者  
					 /home/user/krb5.keytab。
					 | 密钥表文件的位置。 | 
 principal
					 | 字符串 | 无 |   
						Principal 的名称。这可以是简单的用户名或服务名,如  
					 host/testserver.acme.com。或者当密钥表包含多个 principal 时,使用它而不是从密钥表里获取 principal。
					 | 
 useFirstPass
					 |  true 或 false
					 | false |   
						是否以从  
					 javax.security.auth.login.name 和 javax.security.auth.login.password 为关键字从模块的共享状态获取用户名和密码。如果验证失败,不会进行重试。
					 | 
 tryFirstPass
					 |  true 或 false
					 | false |   
						和  
					 useFirstPass 相同,但如果验证失败,模块将使用 CallbackHandler 来获取新的用户名和密码。如果第二次验证失败,将报告给调用的应用程序。
					 | 
 storePass
					 |  true 或 false
					 | false |   
						是否在模块的共享状态里保存用户名和密码。如果关键字已存在于共享内存里,或者验证失败的话,这都不会发生。
					 
					  | 
 clearPass
					 |  true 或 false
					 | false |   
						设置它为  
					 true 在两个验证阶段都完成后从共享内存里清除用户名和密码。
					 | 
| 代码 |  SPNEGOUsers
					 | 
| 分类 |  org.jboss.security.negotiation.spnego.SPNEGOLoginModule
					 | 
| 描述 |   
						允许在 Microsoft Active Directory 服务器或其他支持 SPNEGO 的环境里进行 SPNEGO 验证。SPNEGO 也可以包含 Kerberos 凭证。这个模块需要和另外一个处理验证和角色映射的模块配对。
					 
					  | 
| 选项 | 类型 | 默认 | 描述 | 
|---|---|---|---|
 storeKey
					 |  true 或 false
					 |  false
					 |   
						是否保存密钥。
					 
					  | 
 useKeyTab
					 |  true 或 false
					 |  false
					 |   
						是否使用密钥表。
					 
					  | 
 principal
					 |   
						代表 Kerberos 验证的 principal 的字符串。
					 
					  |   
						无
					 
					  |   
						用于验证的 principal 的名称。
					 
					  | 
 keyTab
					 |   
						代表 keytab 的文件或资源。
					 
					  |  none
					 |   
						密钥表的位置。
					 
					  | 
 doNotPrompt
					 |  true 或 false
					 |  false
					 |   
						是否提示输入密码。
					 
					  | 
 debug
					 |  true 或 false
					 |  false
					 |   
						是否记录更冗余的信息以用于调试。
					 
					  | 
| 代码 |  AdvancedLdap  | 
| 分类 |  org.jboss.security.negotiation.AdvancedLdapLoginModule
					 | 
| 描述 |   
						提供额外功能的模块,如 SASL 和对 JAAS 安全域的使用。
					 
					  | 
| 选项 | 类型 | 默认 | 描述 | 
|---|---|---|---|
 bindAuthentication
					 |   
						串
					 
					  |   
						无
					 
					  |   
						用于绑定到目录服务器的 SASL 验证的类型。
					 
					  | 
 jassSecurityDomain
					 |  string
					 |   
						无
					 
					  |   
						要使用的 JAAS 安全域的名称。
					 
					  | 
 java.naming.provider.url
					 |  string
					 |   
						无
					 
					  |   
						目录服务器的 URI.
					 
					  | 
 baseCtxDN
					 |   
						全限定标识名(DN)。
					 
					  |   
						无
					 
					  |   
						要用作搜索基础的标识名。
					 
					  | 
 baseFilter
					 |   
						代表 LDAP 搜索过滤器的字符串。
					 
					  |   
						无
					 
					  |   
						用于缩减搜索结果的过滤器。
					 
					  | 
 roleAttributeID
					 |   
						代表 LDAP 属性的字符串。
					 
					  |   
						无
					 
					  |   
						包含授权角色的名称的 LDAP 属性。
					 
					  | 
 roleAttributeIsDN
					 |  true 或 false
					 |  false
					 |   
						这个角色属性是否是标识名(Distinguished Name,DN)。
					 
					  | 
 roleNameAttributeID
					 |   
						代表 LDAP 属性的字符串。
					 
					  |   
						无
					 
					  |   
						包含实际角色属性的  
					 RoleAttributeId 里所包含的属性。
					 | 
 recurseRoles
					 |  true 或 false
					 |  false
					 |   
						是否递归地搜索  
					 RoleAttributeId 里的角色。
					 | 
| 代码 |  AdvancedADLdap  | 
| 分类 |  org.jboss.security.negotiation.AdvancedADLoginModule
					 | 
| 描述 |   
						这个模块扩展了  
					 AdvancedLdap 登录模块,并添加额外的和 Microsoft Active Directory 相关的参数。
					 | 
| 代码 |  UsersRoles  | 
| 分类 |  org.jboss.security.auth.spi.UsersRolesLoginModul
					 | 
| 描述 |   
						支持存储在两个不同属性文件里的多个用户和角色的简单登录模块。
					 
					  | 
| 选项 | 类型 | 默认 | 描述 | 
|---|---|---|---|
 usersProperties
					 |   
						文件或资源的路径。
					 
					  |  users.properties
					 |   
						包含用户-密码映射的文件或资源。这个文件的格式是  
					 user=hashed-password。
					 | 
 rolesProperties
					 |   
						文件或资源的路径。
					 
					  |  roles.properties
					 |   
						包含用户-角色映射的文件或资源。这个文件的格式是  
					 username=role1,role2,role3。
					 | 
 password-stacking
					 |  useFirstPass 或 false
					 |  false
					 |  useFirstPass 的值表示这个登录模块应该首先查看存储在 LoginContext 里关于这个标识符的信息。当堆积这个登录模块和其他模块时可以使用这个选项。
					 | 
 hashAlgorithm
					 |   
						代表密码的哈希算法的字符串。
					 
					  |  none
					 |   
						用于 hash 密码的  
					 java.security.MessageDigest 算法的名称。这个选项没有默认值,你必须显性地设置它来启用哈希算法。当指定了 hashAlgorithm 时,CallbackHandler 里包含的明文密码将在作为 inputPassword 参数传递给 UsernamePasswordLoginModule.validatePassword 前进行 hash。保存在 users.properties 文件里的密码必须进行同等的 hash。
					 | 
 hashEncoding
					 |  base64 或 hex
					 |  base64
					 |   
						如果设置了 hashAlgorithm,哈希密码的字符串格式。
					 
					  | 
 hashCharset
					 |   
						字符串
					 
					  |   
						容器的运行时环境里的默认编码集。
					 
					  |   
						将明文密码转换为字节队列的编码。
					 
					  | 
 unauthenticatedIdentity
					 |   
						principal 名称
					 
					  |   
						无
					 
					  |   
						定义分配给不包含验证信息的请求的 principal 名称。这允许不受保护的 servlet 调用不要求专有角色的 EJB 上的方法。这样的 principal 没有关联的角色且只访问未设置安全性的 EJB 或者和  
					 unchecked permission 约束关联的 EJB。
					 | 
自定义验证模块
			验证模块是 org.jboss.security.LoginModule 的实现。关于创建自定义验证模块的更多信息,请参考相关的 API 文档。