Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用JMX和Jaas进行jconsole身份验证_Java_Authentication_Authorization_Jmx_Jaas - Fatal编程技术网

Java 使用JMX和Jaas进行jconsole身份验证

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

我有以下情况:

我有一个应用程序,它使用JMX在服务器上公开一些方法。目前,用户可以使用jconsole通过命令行连接到它。目前没有访问限制

用户将登录到计算机,并拥有以active directory形式存储的访问权限

我希望将身份验证和授权添加到jmx流程中,以便在用户键入命令行时:

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()方法中有一个对授权逻辑模块的回调