Java 使用JMX和Jaas进行jconsole身份验证
我有以下情况: 我有一个应用程序,它使用JMX在服务器上公开一些方法。目前,用户可以使用jconsole通过命令行连接到它。目前没有访问限制 用户将登录到计算机,并拥有以active directory形式存储的访问权限 我希望将身份验证和授权添加到jmx流程中,以便在用户键入命令行时:Java 使用JMX和Jaas进行jconsole身份验证,java,authentication,authorization,jmx,jaas,Java,Authentication,Authorization,Jmx,Jaas,我有以下情况: 我有一个应用程序,它使用JMX在服务器上公开一些方法。目前,用户可以使用jconsole通过命令行连接到它。目前没有访问限制 用户将登录到计算机,并拥有以active directory形式存储的访问权限 我希望将身份验证和授权添加到jmx流程中,以便在用户键入命令行时: jconsole <processName> -Dcom.sun.management.jmxremote.login.config=Sample -Djava.security.auth.log
jconsole <processName>
-Dcom.sun.management.jmxremote.login.config=Sample
-Djava.security.auth.login.config=sample_jaas.config
jconsole
它将检查他们的广告用户组,并确定他们是否有权读取或读取和写入托管资源
我有一个检索广告组的解决方案,但不在于如何将其传递给JMX进程。我可以在jmx进程上设置硬编码密码文件,但我无法自动调用用户来确定其访问权限
当前JMX进程是否可以执行回调来确定用户在尝试连接时的访问权限?如果没有,是否有现有的工具和框架(例如JBoss)允许我这样做?这可以通过使用Jaas自定义登录模块来解决,然后在命令行中使用以下命令跳转并重新启动JMX进程:
jconsole <processName>
-Dcom.sun.management.jmxremote.login.config=Sample
-Djava.security.auth.login.config=sample_jaas.config
其中sample_jaas.config具有如下设置:
Sample {
sample.module.SampleLoginModule required;
};
我的SampleLoginModule实现LoginModule接口,在其login()方法中有一个对授权逻辑模块的回调