1

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() のどこかにありますか?

4

1 に答える 1