sufficient
函数。即使它抛出commit()
,它也会调用FailedLoginException
。但是,如果我在requisite
文件中将安全属性更改为required
或login.config
,则在抛出abort()
时将调用FailedLoginException
。有人知道原因吗? sufficient
标志这样说:
[[足够] LoginModule不需要成功。如果成功,则控制权立即返回到应用程序(身份验证不会继续在LoginModule列表中进行)。如果失败,则继续在LoginModule列表中进行身份验证。换句话说,不需要...
仅当所有
Required和Requisite LoginModules成功时,整体身份验证才会成功。如果配置了足够的LoginModule并成功,则只有Required和Requisite LoginModule之前的那个[[Sufficient LoginModule才需要成功,才能使整体身份验证成功。如果没有为应用程序配置Required或Requisite LoginModule,则至少必须成功完成一个Sufficient或Optional LoginModule。
sufficient
模块就可以成功,因此,当它们失败时,似乎abort()
没有被设计调用。对于它的价值,是JVM本身根据abort()
的结果调用commit()
,login()
等。 ActiveMQ Artemis中使用了登录模块这一事实并不重要。