/* * Copyright 2006-2007 Sun Microsystems, Inc. All Rights Reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package simplejdk6ws; import com.sun.jmx.remote.webservices.JMXWSConfiguration; import com.sun.jmx.remote.webservices.JMXWSSubjectExtractor; import com.sun.xml.wss.SubjectAccessor; import com.sun.xml.wss.XWSSecurityException; import java.io.IOException; import java.lang.management.ManagementFactory; import java.net.MalformedURLException; import java.util.HashMap; import java.util.Map; import javax.management.remote.JMXConnectorServer; import javax.management.remote.JMXConnectorServerFactory; import javax.management.remote.JMXServiceURL; import javax.security.auth.Subject; import javax.xml.ws.WebServiceContext; public class Main { private static class XWSSSecuritySubjectExtractor extends JMXWSSubjectExtractor { protected Subject getExtraSubject(WebServiceContext context) { try { System.out.println("WS-Security Subject " + " :" + SubjectAccessor.getRequesterSubject(context)); return SubjectAccessor.getRequesterSubject(context); } catch (XWSSecurityException ex) { ex.printStackTrace(); } return null; } } public static void main(String[] args) throws MalformedURLException, IOException { Map env = new HashMap(); // Provide the extended SubjectExtractor to inject WS-Security Subject env.put(JMXWSConfiguration.JMX_WS_SUBJECT_EXTRACTOR, new XWSSSecuritySubjectExtractor()); JMXConnectorServer server = JMXConnectorServerFactory. newJMXConnectorServer(new JMXServiceURL("service:jmx:ws:" + "//localhost:8080/jmxws"), env, ManagementFactory.getPlatformMBeanServer()); server.start(); System.out.println("JSR 262 ConnectorServer is ready to serve on http://localhost:8080/jmxws"); } }