Клиент mBeans, развернутый на weblogic, дает исключение безопасности - PullRequest
1 голос
/ 12 января 2012

Я пытаюсь следовать документации mbeans для weblogic и создать веб-приложение для доступа к уже созданным пользовательским компонентам, работающим в другом приложении, развернутом на сервере.Я использую этот код

   InitialContext ctx = new InitialContext();
    MBeanServer    server = (MBeanServer)ctx.lookup("java:comp/env/jmx/runtime");
    String serverName = System.getProperty("weblogic.Name");



         ObjectName on =new ObjectName("com.myCompanyName:Name=MyCutomBean,Type=MyCutomBean");
         boolean boolresult=(Boolean)server.invoke(on, "myMethod",
         new Object[]{"a","b","c"}
         ,new String[]{"java.lang.String","java.lang.String","java.lang.String"}); //throw exception
          out.print(result);
         out.print(boolresult);

, когда я пытаюсь получить доступ к нашим пользовательским компонентам, я получил это исключение:

Доступ запрещен для субъекта: принципалы = [], для ResourceType: NameДействие: выполнить, цель: myMethod

в чем может быть проблема?

1 Ответ

2 голосов
/ 13 января 2012

я наконец-то нашел решение, чтобы избежать этого исключения, вам нужно аутентифицировать свой контекст, используя следующее:

Hashtable props = new Hashtable();
      props.put(Context.INITIAL_CONTEXT_FACTORY,
                "weblogic.jndi.WLInitialContextFactory");

      props.put(Context.SECURITY_PRINCIPAL,   "<userName>");
      props.put(Context.SECURITY_CREDENTIALS, "<password>");
      Context ctx = new InitialContext(props);  MBeanServer    server = (MBeanServer)ctx.lookup("java:comp/env/jmx/runtime");

Надеюсь, это кому-нибудь поможет

...