Weblogic验证提供程序控制标记(Authentication provider Control Flag)详解
2012-04-02 17:50
489 查看
Weblogic 验证提供程序控制标记( Authentication provider Control Flag )详解
一个weblogic安全领域可以有多个验证提供程序(Authentication Provider),每个验证提供程序都有一个控制标记,用于控制其在用户验证中的行为。
控制标记一共有四个取值:REQUIRED、REQUISITE、SUFFICIENT、OPTIONAL,可以用如下的方式来分类
注:经验实验得出REQUIRED和REQUISITE相同,这和官方文档有出入(实验weblogic版本10.3.5.0
)
以下为官方文档描述
A
A
A
An
下面举例来进行说明:
例一 :两个验证提供程序,分别为AP1、AP2;AP1设置为REQUIRED,AP2设置为OPTIONAL;同一个user1在AP1中属于group1,在AP2中属于group2。
由于AP1标识为REQUIRED,所以user1必须通过其验证,如果未能通过其验证则直接返回,登录失败。如果通过了AP1的验证,user1还要去AP2中进行验证,不过
验证成功与否都不影响其登录,其总能成功登录,只不过会有不同的权限而已。如果通过了AP2的验证则user1拿到group1、group2,如果没有通过AP2的验证,其只能
拿到group1。
例二 :两个验证提供程序,分别为AP1、AP2;AP1设置为SUFFICIENT,AP2设置为SUFFICIENT;同一个user1在AP1中属于group1,在AP2中属于group2。
由于AP1设置为SUFFICIENT,所以如果user1通过了AP1的验证,就直接返回,其只能拿到group1;如果没有通过AP1的验证则还要去AP2中进行验证,如果成功则成功
登录并拿到group2,如果失败则登录失败
例三 :两个验证提供程序,分别为AP1、AP2;AP1设置为OPTIONAL,AP2设置为OPTIONAL;同一个user1在AP1中属于group1,在AP2中属于group2。
由于AP1设置为OPTIONAL,所以不论user1是否通过了AP1的验证,它都始终要去AP2中进行验证。如果两者都通过,则user1拿到group1、group2;如果只通过了
AP1则只能拿到group1,只通过了AP2则只能拿到group2
例四 :两个验证提供程序,分别为AP1、AP2;AP1设置为OPTIONAL,AP2设置为REQUIRED;同一个user1在AP1中属于group1,在AP2中属于group2。
由于AP1设置为OPTIONAL,所以不论user1是否通过AP1的验证,它都始终要去AP2中进行验证。如果通过AP2的验证,则登录成功并拿到group1、group2,如果验证失败
则登录失败。
只有搞清楚这个标识的概念我们才能正确处理多验证程序并存的情况,已及通过设置不同的标识来避免不必要的验证过程,优化性能。
一个weblogic安全领域可以有多个验证提供程序(Authentication Provider),每个验证提供程序都有一个控制标记,用于控制其在用户验证中的行为。
控制标记一共有四个取值:REQUIRED、REQUISITE、SUFFICIENT、OPTIONAL,可以用如下的方式来分类
必须成功 | 继续向下执行 | |
REQUIRED | 是 | 成功继续,失败返回 |
REQUISITE | 是 | 成功继续,失败返回 |
SUFFICIENT | 否 | 成功返回,失败继续 |
OPTIONAL | 否 | 成功继续,失败继续 |
注:经验实验得出REQUIRED和REQUISITE相同,这和官方文档有出入(实验weblogic版本10.3.5.0
)
以下为官方文档描述
A
REQUIREDvalue specifies this LoginModule must succeed. Even if it fails, authentication proceeds down the list of LoginModules for the configured Authentication providers. This setting is the default.
A
REQUISITEvalue specifies this LoginModule must succeed. If other Authentication providers are configured and this LoginModule succeeds, authentication proceeds down the list of LoginModules. Otherwise, control is return to the application.
A
SUFFICIENTvalue specifies this LoginModule need not succeed. If it does succeed, return control to the application. If it fails and other Authentication providers are configured, authentication proceeds down the LoginModule list.
An
OPTIONALvalue specifies this LoginModule need not succeed. Whether it succeeds or fails, authentication proceeds down the LoginModule list.
下面举例来进行说明:
例一 :两个验证提供程序,分别为AP1、AP2;AP1设置为REQUIRED,AP2设置为OPTIONAL;同一个user1在AP1中属于group1,在AP2中属于group2。
由于AP1标识为REQUIRED,所以user1必须通过其验证,如果未能通过其验证则直接返回,登录失败。如果通过了AP1的验证,user1还要去AP2中进行验证,不过
验证成功与否都不影响其登录,其总能成功登录,只不过会有不同的权限而已。如果通过了AP2的验证则user1拿到group1、group2,如果没有通过AP2的验证,其只能
拿到group1。
例二 :两个验证提供程序,分别为AP1、AP2;AP1设置为SUFFICIENT,AP2设置为SUFFICIENT;同一个user1在AP1中属于group1,在AP2中属于group2。
由于AP1设置为SUFFICIENT,所以如果user1通过了AP1的验证,就直接返回,其只能拿到group1;如果没有通过AP1的验证则还要去AP2中进行验证,如果成功则成功
登录并拿到group2,如果失败则登录失败
例三 :两个验证提供程序,分别为AP1、AP2;AP1设置为OPTIONAL,AP2设置为OPTIONAL;同一个user1在AP1中属于group1,在AP2中属于group2。
由于AP1设置为OPTIONAL,所以不论user1是否通过了AP1的验证,它都始终要去AP2中进行验证。如果两者都通过,则user1拿到group1、group2;如果只通过了
AP1则只能拿到group1,只通过了AP2则只能拿到group2
例四 :两个验证提供程序,分别为AP1、AP2;AP1设置为OPTIONAL,AP2设置为REQUIRED;同一个user1在AP1中属于group1,在AP2中属于group2。
由于AP1设置为OPTIONAL,所以不论user1是否通过AP1的验证,它都始终要去AP2中进行验证。如果通过AP2的验证,则登录成功并拿到group1、group2,如果验证失败
则登录失败。
只有搞清楚这个标识的概念我们才能正确处理多验证程序并存的情况,已及通过设置不同的标识来避免不必要的验证过程,优化性能。
相关文章推荐
- Android Intent.FLAG_NEW_TASK详解,包括其他的标记的一些解释
- Android Intent.FLAG_NEW_TASK详解,包括其他的标记的一些解释
- springSecurity登录验证分析——AbstractUserDetailsAuthenticationProvider
- Android Intent.FLAG_NEW_TASK详解,包括其他的标记的一些解释
- Android Intent.FLAG_NEW_TASK详解,包括其他的标记的一些解释
- Android Intent FLAG详解,包括其他的标记的一些解释
- 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL
- Android Intent.FLAG_NEW_TASK详解,包括其他的标记的一些解释
- 定制自己的WebLogic LDAP Authentication Provider
- Android Intent.FLAG_NEW_TASK详解,包括其他的标记的一些解释
- Android Intent.FLAG_NEW_TASK详解,包括其他的标记的一些解释
- Android Intent.FLAG_NEW_TASK详解,包括其他的标记的一些解释
- Android Intent.FLAG_NEW_TASK详解,包括其他的标记的一些解释
- Android Intent.FLAG_NEW_TASK详解,包括其他的标记的一些解释
- 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL
- 【求助,已解决】已成功与服务器建立连接,但是在登录前的握手期间发生错误。 (provider: SSL 提供程序, error: 0 - 为验证提供的消息或签名已被改变)
- Android Intent.FLAG_NEW_TASK详解,包括其他的标记的一些解释
- ANDROID INTENT.FLAG_NEW_TASK详解,包括其他的标记的一些解释
- Android Intent.FLAG_NEW_TASK详解,包括其他的标记的一些解释
- Android Intent.FLAG_NEW_TASK详解,包括其他的标记的一些解释