localhost:1234 で実行されているアプリケーションがあり、jconsole を使用してこれに接続しています。アプリケーションには、ログインを処理するためのパスワード ファイルがあります。
Windows ユーザーのさまざまな AD グループに基づいてログインを許可する必要があります。たとえば、グループ 1 に属している場合は読み取り/書き込みアクセスが与えられ、グループ 2 にある場合は読み取り専用アクセスが与えられ、グループ 3 には与えられておらず、アクセスも許可されません。
AD グループのリストをクエリし、必要なユーザー アクセス レベルとログインの詳細を返すことができる AD グループ処理アプリケーションを作成しました。
私の問題:次のようなコマンドラインを使用して、jconsole を使用してアプリケーションに接続したい:
jconsole localhost:1234
ユーザー名とパスワードが必要なため、明らかにこれは接続に失敗します。
localhost:1234 で実行されている JMX アプリケーションで着信接続要求を待機し、AD グループ処理アプリケーションを実行してアクセス レベルを決定する方法はありますか?
localhost:1234 上の私のアプリケーションは非常に基本的なもので、次のようになります。
import java.lang.management.ManagementFactory;
import javax.management.InstanceAlreadyExistsException;
import javax.management.MBeanRegistrationException;
import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
import javax.management.NotCompliantMBeanException;
import javax.management.ObjectName;
public class SystemConfigManagement {
private static final int DEFAULT_NO_THREADS = 10;
private static final String DEFAULT_SCHEMA = "default";
public static void main(String[] args)
throws MalformedObjectNameException, InterruptedException,
InstanceAlreadyExistsException, MBeanRegistrationException,
NotCompliantMBeanException{
//Get the MBean server
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
//register the mBean
SystemConfig mBean = new SystemConfig(DEFAULT_NO_THREADS, DEFAULT_SCHEMA);
ObjectName name = new ObjectName("com.barc.jmx:type=SystemConfig");
mbs.registerMBean(mBean, name);
do{
Thread.sleep(2000);
System.out.println(
"Thread Count = " + mBean.getThreadCount()
+ ":::Schema Name = " + mBean.getSchemaName()
);
}while(mBean.getThreadCount() != 0);
}
}
と
package com.test.jmx;
public class SystemConfig implements SystemConfigMBean {
private int threadCount;
private String schemaName;
public SystemConfig(int numThreads, String schema){
this.threadCount = numThreads;
this.schemaName = schema;
}
@Override
public void setThreadCount(int noOfThreads) {
this.threadCount = noOfThreads;
}
@Override
public int getThreadCount() {
return this.threadCount;
}
@Override
public void setSchemaName(String schemaName) {
this.schemaName = schemaName;
}
@Override
public String getSchemaName() {
return this.schemaName;
}
@Override
public String doConfig() {
return "No of Threads=" + this.threadCount + " and DB Schema Name = " + this.schemaName;
}
}
[ソース: http://www.journaldev.com/1352/what-is-jmx-mbean-jconsole-tutorial]
AD グループ処理アプリケーションを使用してユーザーの詳細を検証するために、このクエリを作成できる main() のどこかにありますか?