[英]How to acess HttpServletRequest in Jaas login module in Tomcat
[英]How to add a JAAS login module to Artemis?
我想向 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
类MyLogin
不到任何打印出来的消息。
有什么方法可以确定此LoginModule
是否已加载,或者如何调试?
如果您没有看到任何日志记录,则说明未加载登录模块。 我认为罪魁祸首可能是login.config
的语法错误。 您在debug=true
之后缺少分号(即;
)。 你应该使用这个:
activemq {
t1.security.MyLogin sufficient
debug=true;
};
此外,您可以为org.apache.activemq.artemis.spi.core.security.ActiveMQJAASSecurityManager
打开DEBUG
日志记录,以获取有关正在发生的事情的更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.