gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 18:57:19 33 4
gpt4 key购买 nike

我想向 ActiveMQ Artemis 添加自定义 JAAS 登录模块。因此,我创建了一个实现 javax.security.auth.spi.LoginModule 的类(即 MyLogin)。

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 );

}

}

我把这个类打成jar,放到%artemis_home%/lib目录下。

login.config 中,我将 activemq 的条目更改为

activemq {
t1.security.MyLogin sufficient
debug=true
};

我期望每个连接都会成功,但它根本不起作用。现在所有连接都被拒绝,并且我没有看到 MyLogin 类中打印出任何消息。

有什么方法可以查明此 LoginModule 是否已加载,或者如何调试它?

最佳答案

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

activemq {
t1.security.MyLogin sufficient
debug=true;
};

此外,您还可以为 org.apache.activemq.artemis.spi.core.security.ActiveMQJAASSecurityManager 打开 DEBUG 日志记录,以获取有关正在发生的情况的更多信息。

关于java - 如何向 Artemis 添加 JAAS 登录模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59665146/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com