java - 通过java列出weblogic中的所有用户

标签 java weblogic jmx

有谁知道如何用java列出所有weblogic用户? 例如,安全领域有 5 个用户,我想获取所有用户。我该怎么办?

最佳答案

这很容易。为了便于将来引用,如果您想查找类似“How do I do X with weblogic and Java...”之类的内容,请在 Google 搜索中使用 JMX。这是来自 weblogic wonders 的示例。请注意,您需要更改代码中的 URL 和用户/密码:

import javax.naming.*;
import javax.management.MBeanInfo;
import weblogic.jndi.Environment;
import weblogic.management.runtime.ServerRuntimeMBean;
import weblogic.security.providers.authentication.DefaultAuthenticatorMBean;
import weblogic.management.security.authentication.UserReaderMBean;
import weblogic.management.security.authentication.GroupReaderMBean;
import weblogic.management.MBeanHome;
import weblogic.management.WebLogicMBean;
import weblogic.management.tools.Info;
import weblogic.management.Helper;
import weblogic.management.security.authentication.*;

public class ListUsersAndGroups
{
  public static void main(String[] args)
  {

  MBeanHome home = null;
  try
  {

    Environment env = new Environment();
    env.setProviderUrl(“t3://localhost:7001?);
    env.setSecurityPrincipal(“weblogic”);
    env.setSecurityCredentials(“weblogic”);
    Context ctx = env.getInitialContext();

    home = (MBeanHome)ctx.lookup(“weblogic.management.adminhome”);

    weblogic.management.security.RealmMBean rmBean = 
   home.getActiveDomain().getSecurityConfiguration().getDefaultRealm();

    AuthenticationProviderMBean[] authenticationBeans = 
    rmBean.getAuthenticationProviders();
    DefaultAuthenticatorMBean defaultAuthenticationMBean = 
    (DefaultAuthenticatorMBean)authenticationBeans[0];
    UserReaderMBean userReaderMBean = 
    (UserReaderMBean)defaultAuthenticationMBean;

    String userCurName = userReaderMBean.listUsers(“*”, 100);

    while (userReaderMBean.haveCurrent(userCurName) )
    {
      String user = userReaderMBean.getCurrentName(userCurName);
      System.out.println(“\n User: ” + user);
      userReaderMBean.advance(userCurName);
    }

  }
  catch (Exception e)
  {
    e.printStackTrace();
  }
  }
}

编辑


实际上没有任何办法必须知道用户/密码才能查找用户。如果这听起来是更好的选择,您也可以通过 WLST 脚本来完成此操作。查看示例 here .

最后但并非最不重要的一点是,您可以在 Weblogic 的嵌入式 ldap 上设置匿名绑定(bind),以允许匿名查找(通常不建议在生产环境中这样做)。此示例展示了如何使用外部客户端执行此操作:Weblogic w/External Ldap Client

关键设置是:

Your Domain -> Security -> Embedded LDAP
Change the (default generated) password (for example: weblogic)
Enable “Anonymous Bind Allowed” 

关于java - 通过java列出weblogic中的所有用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24650838/

相关文章:

java - 将 Jar 文件部署到 weblogic 12.1.3 时出错

java - 在没有NotificationPublisherAware的情况下使用Spring发布JMX通知

tomcat - 如何使用ssh隧道远程连接到tomcat上的jmx而不破坏ehcache

java - 将 Jlist 的所有对象存储到 Array<Object> 中

java - Action 响应式 Web 框架 (Spring MVC 3) 的含义

jakarta-ee - 网络逻辑 12c : Failed to initialize JNDI context

java - 运行 weblogic 或 tomcat 时无法获取属性文件

java - 获取自己的 MBean 的所有已注册实例

java - 将XML解析为包含List属性的java对象

java - SQL Server - 如何确保缓存查询结果?