我想向ActiveMQ Artemis添加一个自定义JAAS登录模块。因此,我创建了一个实现MyLogin
的类(即javax.security.auth.spi.LoginModule
)。
public class MyLogin implements javax.security.auth.spi.LoginModule { @Override public boolean abort() throws LoginException { out( "abort" ); return true; } @Override public boolean commit() throws LoginException { out( "commit" ); return true; } @Override public void initialize( Subject subject, CallbackHandler callbackHandler, Map<String, ?> sharedState, Map<String, ?> options ) { out( "initialize" ); } @Override public boolean login() throws LoginException { out( "login" ); return true; } @Override public boolean logout() throws LoginException { out( "logout" ); return true; } private void out( String msg ) { System.out.println( "MSO: " + msg ); System.err.println( "MSW: " + msg ); } }
我将此类放在一个罐子中,然后放入
%artemis_home%/lib
目录。
在login.config
中,我将activemq
的条目更改为
activemq { t1.security.MyLogin sufficient debug=true };
我希望每个连接都能成功,但是根本不起作用。现在所有连接都被拒绝,并且
MyLogin
类中没有显示任何消息。
是否有任何方法可以确定此LoginModule
是否已加载,或者如何调试?
我想向ActiveMQ Artemis添加一个自定义JAAS登录模块。因此,我创建了一个实现javax.security.auth.spi.LoginModule的类(即MyLogin)。公共类MyLogin实现javax ....
如果没有看到任何日志记录,则说明未加载登录模块。我认为罪魁祸首可能是您的login.config
中的语法错误。您在;
之后缺少分号(即debug=true
)。您应该使用此: