如何向Artemis添加JAAS登录模块?

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

我想向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 ....

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

如果没有看到任何日志记录,则说明未加载登录模块。我认为罪魁祸首可能是您的login.config中的语法错误。您在;之后缺少分号(即debug=true)。您应该使用此:

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