在JAAS登录模块上未调用abort(),且安全属性足够高。

问题描述 投票:0回答:1

在ActiveMQ Artemis broker中的JAAS模块没有被调用。abort() 功能,当使用 sufficient 旗帜。它在呼唤 commit() 纵使它抛出 FailedLoginException. 但如果我把安全属性改为 requisiterequiredlogin.config 档案 abort() 当它抛出 FailedLoginException. 有人知道原因吗?

java jaas activemq-artemis
1个回答
0
投票

相关JavaDoc 说,关于 sufficient 标志。

[足够的]LoginModule不需要成功。 如果它成功了,控制权立即返回到应用程序(身份验证不会在LoginModule列表中继续)。如果它失败了,身份验证将继续在LoginModule列表中进行。

...

只有当所有的 需要要求 登录模块成功。如果配置了Sufficient LoginModule并且成功了,那么就只有 需要要求 之前的LoginModules 充足 LoginModule需要成功,才能使整个认证成功。如果没有 需要要求 登录模块是为应用程序配置的,那么至少一个 充足可选 LoginModule必须成功。

换句话说。sufficient 模块不需要成功,因此,当它们失败时,似乎是 abort() 并没有被设计调用。

值得一提的是,是JVM本身调用了 abort(), commit()、等基于结果的 login(). 登录模块在ActiveMQ Artemis中使用的事实并不真正相关。

© www.soinside.com 2019 - 2024. All rights reserved.