List of usage examples for javax.xml.ws BindingProvider USERNAME_PROPERTY
String USERNAME_PROPERTY
To view the source code for javax.xml.ws BindingProvider USERNAME_PROPERTY.
Click Source Link
From source file:org.pentaho.di.repository.pur.WebServiceManager.java
@Override @SuppressWarnings("unchecked") public <T> T createService(final String username, final String password, final Class<T> clazz) throws MalformedURLException { final Future<Object> resultFuture; synchronized (serviceCache) { // if this is true, a coder did not make sure that clearServices was called on disconnect if (lastUsername != null && !lastUsername.equals(username)) { throw new IllegalStateException(); }/* w ww . j a v a2 s . c om*/ final WebServiceSpecification webServiceSpecification = serviceNameMap.get(clazz); final String serviceName = webServiceSpecification.getServiceName(); if (serviceName == null) { throw new IllegalStateException(); } if (webServiceSpecification.getServiceType().equals(ServiceType.JAX_WS)) { // build the url handling whether or not baseUrl ends with a slash // String baseUrl = repositoryMeta.getRepositoryLocation().getUrl(); final URL url = new URL( baseUrl + (baseUrl.endsWith("/") ? "" : "/") + "webservices/" + serviceName + "?wsdl"); //$NON-NLS-1$ //$NON-NLS-2$ String key = url.toString() + '_' + serviceName + '_' + clazz.getName(); if (!serviceCache.containsKey(key)) { resultFuture = executor.submit(new Callable<Object>() { @Override public Object call() throws Exception { Service service = Service.create(url, new QName(NAMESPACE_URI, serviceName)); T port = service.getPort(clazz); // add TRUST_USER if necessary if (StringUtils .isNotBlank(System.getProperty("pentaho.repository.client.attemptTrust"))) { ((BindingProvider) port).getRequestContext().put( MessageContext.HTTP_REQUEST_HEADERS, Collections.singletonMap(TRUST_USER, Collections.singletonList(username))); } else { // http basic authentication ((BindingProvider) port).getRequestContext().put(BindingProvider.USERNAME_PROPERTY, username); ((BindingProvider) port).getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, password); } // accept cookies to maintain session on server ((BindingProvider) port).getRequestContext() .put(BindingProvider.SESSION_MAINTAIN_PROPERTY, true); // support streaming binary data // TODO mlowery this is not portable between JAX-WS implementations (uses com.sun) ((BindingProvider) port).getRequestContext() .put(JAXWSProperties.HTTP_CLIENT_STREAMING_CHUNK_SIZE, 8192); SOAPBinding binding = (SOAPBinding) ((BindingProvider) port).getBinding(); binding.setMTOMEnabled(true); return port; } }); serviceCache.put(key, resultFuture); } else { resultFuture = serviceCache.get(key); } } else { if (webServiceSpecification.getServiceType().equals(ServiceType.JAX_RS)) { String key = baseUrl.toString() + '_' + serviceName + '_' + clazz.getName(); if (!serviceCache.containsKey(key)) { resultFuture = executor.submit(new Callable<Object>() { @Override public Object call() throws Exception { ClientConfig clientConfig = new DefaultClientConfig(); Client client = Client.create(clientConfig); client.addFilter(new HTTPBasicAuthFilter(username, password)); Class<?>[] parameterTypes = new Class<?>[] { Client.class, URI.class }; String factoryClassName = webServiceSpecification.getServiceClass().getName(); factoryClassName = factoryClassName.substring(0, factoryClassName.lastIndexOf("$")); Class<?> factoryClass = Class.forName(factoryClassName); Method method = factoryClass.getDeclaredMethod( webServiceSpecification.getServiceName(), parameterTypes); T port = (T) method.invoke(null, new Object[] { client, new URI(baseUrl + "/plugin") }); return port; } }); serviceCache.put(key, resultFuture); } else { resultFuture = serviceCache.get(key); } } else { resultFuture = null; } } try { if (clazz.isInterface()) { return UnifiedRepositoryInvocationHandler.forObject((T) resultFuture.get(), clazz); } else { return (T) resultFuture.get(); } } catch (InterruptedException e) { throw new RuntimeException(e); } catch (ExecutionException e) { Throwable cause = e.getCause(); if (cause != null) { if (cause instanceof RuntimeException) { throw (RuntimeException) cause; } else if (cause instanceof MalformedURLException) { throw (MalformedURLException) cause; } } throw new RuntimeException(e); } } }
From source file:org.pentaho.platform.plugin.services.importexport.CommandLineProcessor.java
/** * Why does this return a web service? Going directly to the IUnifiedRepository requires the following: * <p/>/*from w w w . j av a2s .c om*/ * <ul> * <li>PentahoSessionHolder setup including password and tenant ID. (The server doesn't even process passwords today-- * it assumes that Spring Security processed it. This would require code changes.)</li> * <li>User must specify path to Jackrabbit files (i.e. system/jackrabbit).</li> * </ul> */ protected synchronized IUnifiedRepository getRepository() throws ParseException { if (repository != null) { return repository; } final String NAMESPACE_URI = "http://www.pentaho.org/ws/1.0"; //$NON-NLS-1$ final String SERVICE_NAME = "unifiedRepository"; //$NON-NLS-1$ String urlString = getOptionValue( Messages.getInstance().getString("CommandLineProcessor.INFO_OPTION_URL_KEY"), Messages.getInstance().getString("CommandLineProcessor.INFO_OPTION_URL_NAME"), true, false).trim(); if (urlString.endsWith("/")) { urlString = urlString.substring(0, urlString.length() - 1); } urlString = urlString + "/webservices/" + SERVICE_NAME + "?wsdl"; URL url; try { url = new URL(urlString); } catch (MalformedURLException e) { throw new IllegalArgumentException(e); } Service service = Service.create(url, new QName(NAMESPACE_URI, SERVICE_NAME)); IUnifiedRepositoryJaxwsWebService port = service.getPort(IUnifiedRepositoryJaxwsWebService.class); // http basic authentication ((BindingProvider) port).getRequestContext().put(BindingProvider.USERNAME_PROPERTY, getOptionValue(Messages.getInstance().getString("CommandLineProcessor.INFO_OPTION_USERNAME_KEY"), Messages.getInstance().getString("CommandLineProcessor.INFO_OPTION_USERNAME_NAME"), true, false)); ((BindingProvider) port).getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, getOptionValue(Messages.getInstance().getString("CommandLineProcessor.INFO_OPTION_PASSWORD_KEY"), Messages.getInstance().getString("CommandLineProcessor.INFO_OPTION_PASSWORD_NAME"), true, true)); // accept cookies to maintain session on server ((BindingProvider) port).getRequestContext().put(BindingProvider.SESSION_MAINTAIN_PROPERTY, true); // support streaming binary data // TODO mlowery this is not portable between JAX-WS implementations // (uses com.sun) ((BindingProvider) port).getRequestContext().put(JAXWSProperties.HTTP_CLIENT_STREAMING_CHUNK_SIZE, 8192); SOAPBinding binding = (SOAPBinding) ((BindingProvider) port).getBinding(); binding.setMTOMEnabled(true); final UnifiedRepositoryToWebServiceAdapter unifiedRepositoryToWebServiceAdapter = new UnifiedRepositoryToWebServiceAdapter( port); repository = unifiedRepositoryToWebServiceAdapter; return unifiedRepositoryToWebServiceAdapter; }
From source file:org.qualipso.funkyfactory.test.clock.ws.ClockServiceWSTest.java
/** * Test the getTime WebService factory service authentified *//* w w w.j a v a 2s .c o m*/ @Test public void testGetTimeAuthentified() { logger.debug("Testing ClockService WebService authentified"); Map<String, Object> reqContext = ((BindingProvider) service).getRequestContext(); reqContext.put(StubExt.PROPERTY_AUTH_TYPE, StubExt.PROPERTY_AUTH_TYPE_WSSE); reqContext.put(BindingProvider.USERNAME_PROPERTY, "kermit"); reqContext.put(BindingProvider.PASSWORD_PROPERTY, "thefrog"); messageTest(); }