在ActiveMQ Artemis broker中的JAAS模块没有被调用。abort()
功能,当使用 sufficient
旗帜。它在呼唤 commit()
纵使它抛出 FailedLoginException
. 但如果我把安全属性改为 requisite
或 required
在 login.config
档案 abort()
当它抛出 FailedLoginException
. 有人知道原因吗?
该 相关JavaDoc 说,关于 sufficient
标志。
[足够的]LoginModule不需要成功。 如果它成功了,控制权立即返回到应用程序(身份验证不会在LoginModule列表中继续)。如果它失败了,身份验证将继续在LoginModule列表中进行。
...
只有当所有的 需要 和 要求 登录模块成功。如果配置了Sufficient LoginModule并且成功了,那么就只有 需要 和 要求 之前的LoginModules 充足 LoginModule需要成功,才能使整个认证成功。如果没有 需要 或 要求 登录模块是为应用程序配置的,那么至少一个 充足 或 可选 LoginModule必须成功。
换句话说。sufficient
模块不需要成功,因此,当它们失败时,似乎是 abort()
并没有被设计调用。
值得一提的是,是JVM本身调用了 abort()
, commit()
、等基于结果的 login()
. 登录模块在ActiveMQ Artemis中使用的事实并不真正相关。