您的位置:首页 > 编程语言 > Java开发

Weblogic:Java调用Weblogic API创建用户和修改密码

2013-05-30 16:53 477 查看
介绍

如果要使用Weblogic内嵌的LDAP来做验证,普通用户无法直接修改自己的密码,需要管理员登录weblogic console才能进行修改。weblogic提供api使用java代码来修改。

代码

import java.io.IOException;

import java.net.MalformedURLException;

import java.util.Hashtable;

import javax.management.InstanceNotFoundException;
import javax.management.MBeanException;
import javax.management.MBeanServerConnection;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import javax.management.ReflectionException;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;

import javax.naming.Context;

public class DefaultAuthenticatorAdapter {
    private static MBeanServerConnection connection;
    private static JMXConnector connector;
    private static ObjectName service;

    static {
        try {
            service =
                    new ObjectName("Security:Name=myrealmDefaultAuthenticator");
        } catch (MalformedObjectNameException e) {
            e.printStackTrace();
        }
    }
    public void connection(String hostname, String portString,
                                      String username,
                                      String password) throws IOException,
                                                              MalformedURLException {
        String protocol = "t3";
        Integer portInteger = Integer.valueOf(portString);
        int port = portInteger.intValue();
        String jndiroot = "/jndi/";
        String mserver = "weblogic.management.mbeanservers.domainruntime";
        JMXServiceURL serviceURL =
            new JMXServiceURL(protocol, hostname, port, jndiroot + mserver);
        Hashtable h = new Hashtable();
        h.put(Context.SECURITY_PRINCIPAL, username);
        h.put(Context.SECURITY_CREDENTIALS, password);
        h.put(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES,
              "weblogic.management.remote");
        h.put("jmx.remote.x.request.waiting.timeout", new Long(10000));
        connector = JMXConnectorFactory.connect(serviceURL, h);
        connection = connector.getMBeanServerConnection();
    }

    public void createUser(String username, String password,
                           String description) throws InstanceNotFoundException,
                                                      MBeanException,
                                                      ReflectionException,
                                                      IOException {
        Object[] params = { username, password, description };
        String[] signature = { "java.lang.String", "java.lang.String", "java.lang.String" };
        connection.invoke(service, "createUser", params, signature);
    }
    
    public void changeUserPassword(String username, String oldPassword, String newPassword) {
        try {
            Object[] params = { username, oldPassword, newPassword };
            String[] signature = { "java.lang.String", "java.lang.String", "java.lang.String" };
            connection.invoke(service, "changeUserPassword", params, signature);
        } catch (InstanceNotFoundException e) {
            e.printStackTrace();
        } catch (MBeanException e) {
            String message = e.getMessage();
            System.out.println("message = " + message);
        } catch (ReflectionException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    public static void main(String[] args) throws Exception {
        String hostname = "10.1.36.47";
        String portString = "7101";
        String username = "weblogic";
        String password = "welcome1";

        DefaultAuthenticatorAdapter c = new DefaultAuthenticatorAdapter();
        c.connection(hostname, portString, username, password);
        c.createUser("test1", "welcome1", "dddddddddddddddddd");
        //c.changeUserPassword("test1", "welcome3", "welcome4");
        connector.close();
    }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐