Example usage for org.apache.commons.httpclient Header Header

List of usage examples for org.apache.commons.httpclient Header Header

Introduction

In this page you can find the example usage for org.apache.commons.httpclient Header Header.

Prototype

public Header() 

Source Link

Usage

From source file:org.wso2.carbon.bpmn.extensions.soap.SOAPTask.java

@Override
public void execute(DelegateExecution execution) {

    String endpointURL;/*from   w w w  .  j ava 2 s.c  o m*/
    String payloadRequest;
    String version;
    String connection;
    String transferEncoding;
    String transportHeaderList[];
    String action = "";
    String soapVersionURI = SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI;
    List<Header> headerList = new ArrayList<Header>();

    try {
        if (serviceURL != null) {
            endpointURL = serviceURL.getValue(execution).toString();
        } else if (serviceRef != null) {
            String resourcePath = serviceRef.getValue(execution).toString();
            String registryPath;
            String tenantId = execution.getTenantId();
            Registry registry;
            if (resourcePath.startsWith(GOVERNANCE_REGISTRY_PREFIX)) {
                registryPath = resourcePath.substring(GOVERNANCE_REGISTRY_PREFIX.length());
                registry = BPMNExtensionsComponent.getRegistryService()
                        .getGovernanceSystemRegistry(Integer.parseInt(tenantId));
            } else if (resourcePath.startsWith(CONFIGURATION_REGISTRY_PREFIX)) {
                registryPath = resourcePath.substring(CONFIGURATION_REGISTRY_PREFIX.length());
                registry = BPMNExtensionsComponent.getRegistryService()
                        .getConfigSystemRegistry(Integer.parseInt(tenantId));
            } else {
                String msg = "Registry type is not specified for service reference in "
                        + " serviceRef should begin with gov:/ or conf:/ to indicate the registry type.";
                throw new SOAPException(SOAP_INVOKE_ERROR_CODE, msg);
            }

            if (log.isDebugEnabled()) {
                log.debug("Reading endpoint from registry location: " + registryPath + " for task "
                        + execution.getCurrentActivityName());
            }
            Resource urlResource = registry.get(registryPath);
            if (urlResource != null) {
                String uepContent = new String((byte[]) urlResource.getContent(), Charset.defaultCharset());

                UnifiedEndpointFactory uepFactory = new UnifiedEndpointFactory();
                OMElement uepElement = AXIOMUtil.stringToOM(uepContent);
                UnifiedEndpoint uep = uepFactory.createEndpoint(uepElement);
                endpointURL = uep.getAddress();

            } else {
                String errorMsg = "Endpoint resource " + registryPath
                        + " is not found. Failed to execute REST invocation in task "
                        + execution.getCurrentActivityName();
                throw new SOAPException(SOAP_INVOKE_ERROR_CODE, errorMsg);
            }
        } else {
            String urlNotFoundErrorMsg = "Service URL is not provided. serviceURL must be provided.";
            throw new SOAPException(SOAP_INVOKE_ERROR_CODE, urlNotFoundErrorMsg);
        }
        if (payload != null) {
            payloadRequest = payload.getValue(execution).toString();
        } else {
            String payloadNotFoundErrorMsg = "Payload request is not provided. Payload must be provided.";
            throw new SOAPException(SOAP_INVOKE_ERROR_CODE, payloadNotFoundErrorMsg);
        }
        if (soapVersion != null) {
            version = soapVersion.getValue(execution).toString();
            if (version.equalsIgnoreCase(SOAP12_VERSION)) {
                soapVersionURI = SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI;
            } else if (version.equalsIgnoreCase(SOAP11_VERSION)) {
                soapVersionURI = SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI;
            } else {
                String invalidVersionErrorMsg = "Invalid soap version string specified";
                throw new SOAPException(SOAP_INVOKE_ERROR_CODE, invalidVersionErrorMsg);
            }
        }
        //Adding the connection
        Header connectionHeader = new Header();
        if (httpConnection != null) {
            connection = httpConnection.getValue(execution).toString();
            if (connection != null && !connection.trim().equals("Keep-Alive")) {
                log.debug("Setting Keep-Alive header ");
                connectionHeader.setName("Connection");
                connectionHeader.setValue(connection);
                headerList.add(connectionHeader);

            }
        }

        //Adding the additional transport headers
        if (transportHeaders != null) {
            String headerContent = transportHeaders.getValue(execution).toString();
            if (headerContent != null) {
                transportHeaderList = headerContent.split(",");
                for (String transportHeader : transportHeaderList) {
                    String pair[] = transportHeader.split(":");
                    Header additionalHeader = new Header();

                    if (pair.length == 1) {
                        additionalHeader.setName(pair[0]);
                        additionalHeader.setValue("");
                        if (log.isDebugEnabled()) {
                            log.debug("Adding transport headers " + pair[0]);
                        }
                    } else {
                        additionalHeader.setName(pair[0]);
                        additionalHeader.setValue(pair[1]);
                        if (log.isDebugEnabled()) {
                            log.debug("Adding transport headers " + pair[0] + " " + pair[1]);
                        }
                    }
                    headerList.add(additionalHeader);
                }
            }

        }

        //Adding the soap action
        if (soapAction != null) {
            action = soapAction.getValue(execution).toString();
            if (log.isDebugEnabled()) {
                log.debug("Setting soap action " + soapAction);
            }
        }
        //Converting the payload to an OMElement
        OMElement payLoad = AXIOMUtil.stringToOM(payloadRequest);
        //Creating the Service client
        ServiceClient sender = new ServiceClient();
        OMElement response;
        //Creating options to set the headers
        Options options = new Options();
        options.setTo(new EndpointReference(endpointURL));
        options.setAction(action);
        options.setSoapVersionURI(soapVersionURI);

        options.setProperty(org.apache.axis2.transport.http.HTTPConstants.HTTP_HEADERS, headerList);

        //Adding the soap header block to the SOAP Header block when creating the SOAP Envelope
        if (headers != null) {
            String headerContent = headers.getValue(execution).toString();
            OMElement headerElement = AXIOMUtil.stringToOM(headerContent);
            sender.addHeader(headerElement);
            if (log.isDebugEnabled()) {
                log.debug("Adding soap header " + headerContent);
            }
        }
        //Adding the transfer encoding
        if (httpTransferEncoding != null) {
            transferEncoding = httpTransferEncoding.getValue(execution).toString();
            if (transferEncoding.equalsIgnoreCase("chunked")) {
                options.setProperty(HTTPConstants.CHUNKED, Boolean.TRUE);
                if (log.isDebugEnabled()) {
                    log.debug("Enabling transfer encoding chunked ");
                }
            } else {
                options.setProperty(HTTPConstants.CHUNKED, Boolean.FALSE);
                if (log.isDebugEnabled()) {
                    log.debug("Disabling transfer encoding chunked ");
                }
            }
        }
        sender.setOptions(options);
        //Invoking the endpoint
        response = sender.sendReceive(payLoad);
        //Getting the response as a string
        String responseStr = response.toStringWithConsume();
        if (outputVariable != null) {
            String outVarName = outputVariable.getValue(execution).toString();
            execution.setVariableLocal(outVarName, responseStr);
        } else {
            String outputNotFoundErrorMsg = "Output variable is not provided. "
                    + "outputVariable must be provided to save " + "the response.";
            throw new SOAPException(SOAP_INVOKE_ERROR_CODE, outputNotFoundErrorMsg);
        }
    } catch (AxisFault axisFault) {
        log.error("Axis2 Fault", axisFault);
        throw new SOAPException(SOAP_INVOKE_ERROR_CODE,
                "Exception while getting response :" + axisFault.getMessage());
    } catch (XMLStreamException | RegistryException e) {
        log.error("Exception in processing", e);
        throw new SOAPException(SOAP_INVOKE_ERROR_CODE, "Exception in processing  :" + e.getMessage());
    }
}

From source file:org.wso2.carbon.device.mgt.core.geo.service.GeoLocationProviderServiceImpl.java

protected EventProcessorAdminServiceStub getEventProcessorAdminServiceStub() throws JWTClientException {
    //send alert to event-processing
    String eventProcessorAdminServiceWSUrl = Utils.replaceSystemProperty(GeoServices.DAS_URL)
            + "/services/EventProcessorAdminService";

    //Getting the tenant Domain
    String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain();
    String username = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername();
    String tenantAdminUser = username + "@" + tenantDomain;

    try {/*from ww  w .j a  v a2s. c o m*/
        //Create the SSL context with the loaded TrustStore/keystore.
        SSLContext sslContext = initSSLConnection(tenantAdminUser);
        JWTClient jwtClient = getJWTClientManagerService().getJWTClient();

        String authValue = AUTHORIZATION_HEADER_VALUE + " "
                + new String(Base64.encodeBase64(jwtClient.getJwtToken(tenantAdminUser).getBytes()));

        EventProcessorAdminServiceStub eventprocessorStub = new EventProcessorAdminServiceStub(
                eventProcessorAdminServiceWSUrl);

        Options eventProcessorOption = eventprocessorStub._getServiceClient().getOptions();
        if (eventProcessorOption == null) {
            eventProcessorOption = new Options();
        }

        List<Header> list = new ArrayList<>();
        Header httpHeader = new Header();
        httpHeader.setName(AUTHORIZATION_HEADER);
        httpHeader.setValue(authValue);
        list.add(httpHeader);//"https"

        eventProcessorOption.setProperty(HTTPConstants.HTTP_HEADERS, list);
        eventProcessorOption.setProperty(HTTPConstants.CUSTOM_PROTOCOL_HANDLER,
                new Protocol(DEFAULT_HTTP_PROTOCOL,
                        (ProtocolSocketFactory) new SSLProtocolSocketFactory(sslContext),
                        Integer.parseInt(Utils.replaceSystemProperty(DAS_PORT))));
        eventprocessorStub._getServiceClient().setOptions(eventProcessorOption);

        return eventprocessorStub;
    } catch (CertificateException | NoSuchAlgorithmException | UnrecoverableKeyException | KeyStoreException
            | KeyManagementException | IOException e) {
        throw new JWTClientException("JWT token creation failed for the Event Processor Stub", e);
    }
}

From source file:org.wso2.carbon.device.mgt.core.geo.service.GeoServcieManagerImpl.java

private EventProcessorAdminServiceStub getEventProcessorAdminServiceStub() throws JWTClientException {
    //send alert to event-processing
    String eventProcessorAdminServiceWSUrl = Utils.replaceSystemProperty(GeoServices.DAS_URL)
            + "/services/EventProcessorAdminService";

    //Getting the tenant Domain
    String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain();
    String username = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername();
    String tenantAdminUser = username + "@" + tenantDomain;

    try {/*from  ww w .j  a v  a 2 s. c  om*/
        //Create the SSL context with the loaded TrustStore/keystore.
        SSLContext sslContext = initSSLConnection(tenantAdminUser);
        JWTClient jwtClient = getJWTClientManagerService().getJWTClient();

        String authValue = AUTHORIZATION_HEADER_VALUE + " "
                + new String(Base64.encodeBase64(jwtClient.getJwtToken(tenantAdminUser).getBytes()));

        EventProcessorAdminServiceStub eventprocessorStub = new EventProcessorAdminServiceStub(
                eventProcessorAdminServiceWSUrl);

        Options eventProcessorOption = eventprocessorStub._getServiceClient().getOptions();
        if (eventProcessorOption == null) {
            eventProcessorOption = new Options();
        }

        List<Header> list = new ArrayList<>();
        Header httpHeader = new Header();
        httpHeader.setName(AUTHORIZATION_HEADER);
        httpHeader.setValue(authValue);
        list.add(httpHeader);//"https"

        eventProcessorOption.setProperty(HTTPConstants.HTTP_HEADERS, list);
        eventProcessorOption.setProperty(HTTPConstants.CUSTOM_PROTOCOL_HANDLER,
                new Protocol(DEFAULT_HTTP_PROTOCOL,
                        (ProtocolSocketFactory) new SSLProtocolSocketFactory(sslContext),
                        Integer.parseInt(Utils.replaceSystemProperty(DAS_PORT))));
        eventprocessorStub._getServiceClient().setOptions(eventProcessorOption);

        return eventprocessorStub;
    } catch (CertificateException | NoSuchAlgorithmException | UnrecoverableKeyException | KeyStoreException
            | KeyManagementException | IOException e) {
        throw new JWTClientException("JWT token creation failed for the Event Processor Stub", e);
    }
}

From source file:org.wso2.carbon.device.mgt.jaxrs.service.impl.admin.DeviceAnalyticsArtifactUploaderAdminServiceImpl.java

@Override
@POST//from   w  w  w  . j  a  v  a  2  s.  co m
@Path("/deploy/{type}")
public Response doPublish(@PathParam("type") String type) {
    try {
        //Getting the tenant Domain
        tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain();
        String username = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername();
        String tenantAdminUser = username + "@" + tenantDomain;

        String keyStorePassword = ServerConfiguration.getInstance()
                .getFirstProperty("Security.KeyStore.Password");
        String trustStorePassword = ServerConfiguration.getInstance()
                .getFirstProperty("Security.TrustStore.Password");
        String keyStoreLocation = ServerConfiguration.getInstance()
                .getFirstProperty("Security.KeyStore.Location");
        String trustStoreLocation = ServerConfiguration.getInstance()
                .getFirstProperty("Security.TrustStore.Location");

        //Call to load the keystore.
        loadKeyStore(keyStoreLocation, keyStorePassword);
        //Call to load the TrustStore.
        loadTrustStore(trustStoreLocation, trustStorePassword);
        //Create the SSL context with the loaded TrustStore/keystore.
        initSSLConnection();
        JWTClient jwtClient = DeviceMgtAPIUtils.getJWTClientManagerService().getJWTClient();

        String authValue = AUTHORIZATION_HEADER_VALUE + " "
                + new String(Base64.encodeBase64(jwtClient.getJwtToken(tenantAdminUser).getBytes()));

        List<Header> list = new ArrayList<>();
        Header httpHeader = new Header();
        httpHeader.setName(AUTHORIZATION_HEADER);
        httpHeader.setValue(authValue);
        list.add(httpHeader);//"https"

        List<String> streamFileList = getStreamsList(type);
        List<String> receiverFileList = getReceiversList(type);

        if (!tenantDomain.equals(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME)) {
            if (streamFileList != null) {
                publishDynamicEventStream(type, MultitenantConstants.SUPER_TENANT_DOMAIN_NAME, streamFileList);
            }
            if (receiverFileList != null) {
                publishDynamicEventReceivers(type, MultitenantConstants.SUPER_TENANT_DOMAIN_NAME,
                        receiverFileList);
            }
        }
        if (streamFileList != null) {
            publishDynamicEventStream(type, tenantDomain, streamFileList);
        }
        if (deployAnalyticsCapp(type, list)) {
            return Response.status(Response.Status.BAD_REQUEST).entity("\"Error, Artifact does not exist.\"")
                    .build();
        }
        if (receiverFileList != null) {
            publishDynamicEventReceivers(type, tenantDomain, receiverFileList);
        }
        return Response.status(Response.Status.CREATED)
                .entity("\"OK. \\n Successfully uploaded the artifacts.\"").build();
    } catch (AxisFault e) {
        log.error("failed to publish event definitions for tenantDomain:" + tenantDomain, e);
        return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
    } catch (RemoteException e) {
        log.error("Failed to connect with the remote services:" + tenantDomain, e);
        return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
    } catch (JWTClientException e) {
        log.error("Failed to generate jwt token for tenantDomain:" + tenantDomain, e);
        return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
    } catch (UserStoreException e) {
        log.error("Failed to connect with the user store, tenantDomain: " + tenantDomain, e);
        return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
    } catch (CertificateException | UnrecoverableKeyException | KeyStoreException | KeyManagementException
            | IOException | NoSuchAlgorithmException e) {
        log.error("Failed to access keystore for, tenantDomain: " + tenantDomain, e);
        return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
    } catch (RegistryException e) {
        log.error("Failed to load tenant, tenantDomain: " + tenantDomain, e);
        return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
    } catch (ParseException e) {
        log.error("Invalid stream definition for device type" + type + " for tenant, tenantDomain: "
                + tenantDomain, e);
        return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
    }
}

From source file:org.wso2.carbon.device.mgt.jaxrs.service.impl.admin.DeviceAnalyticsArtifactUploaderAdminServiceImpl.java

private void publishDynamicEventReceivers(String deviceType, String tenantDomain, List<String> receiversList)
        throws IOException, UserStoreException, JWTClientException {

    PrivilegedCarbonContext.startTenantFlow();
    PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantDomain(tenantDomain, true);
    EventReceiverAdminServiceStub receiverAdminServiceStub = null;
    try {/*from w ww .  j av a2s.  c  o  m*/
        receiverAdminServiceStub = new EventReceiverAdminServiceStub(
                Utils.replaceSystemProperty(DAS_EVENT_RECEIVER_EP));
        Options eventReciverOptions = receiverAdminServiceStub._getServiceClient().getOptions();
        if (eventReciverOptions == null) {
            eventReciverOptions = new Options();
        }
        String username;
        if (!tenantDomain.equals(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME)) {
            username = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUserRealm()
                    .getRealmConfiguration().getAdminUserName() + "@" + tenantDomain;
        } else {
            username = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUserRealm()
                    .getRealmConfiguration().getAdminUserName();
        }

        JWTClient jwtClient = DeviceMgtAPIUtils.getJWTClientManagerService().getJWTClient();

        String authValue = AUTHORIZATION_HEADER_VALUE + " "
                + new String(Base64.encodeBase64(jwtClient.getJwtToken(username).getBytes()));

        List<Header> list = new ArrayList<>();
        Header httpHeader = new Header();
        httpHeader.setName(AUTHORIZATION_HEADER);
        httpHeader.setValue(authValue);
        list.add(httpHeader);//"https"

        eventReciverOptions.setProperty(HTTPConstants.HTTP_HEADERS, list);
        eventReciverOptions.setProperty(HTTPConstants.CUSTOM_PROTOCOL_HANDLER,
                new Protocol(DEFAULT_HTTP_PROTOCOL,
                        (ProtocolSocketFactory) new SSLProtocolSocketFactory(sslContext),
                        Integer.parseInt(Utils.replaceSystemProperty(DAS_PORT))));

        receiverAdminServiceStub._getServiceClient().setOptions(eventReciverOptions);
        for (String receiverContent : receiversList) {
            receiverAdminServiceStub.deployEventReceiverConfiguration(receiverContent);
        }
    } finally {
        cleanup(receiverAdminServiceStub);
        PrivilegedCarbonContext.endTenantFlow();
    }
}

From source file:org.wso2.carbon.device.mgt.jaxrs.service.impl.admin.DeviceAnalyticsArtifactUploaderAdminServiceImpl.java

private void publishDynamicEventStream(String deviceType, String tenantDomain, List<String> streamList)
        throws IOException, UserStoreException, JWTClientException, ParseException {

    PrivilegedCarbonContext.startTenantFlow();
    PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantDomain(tenantDomain, true);
    EventStreamAdminServiceStub eventStreamAdminServiceStub = null;
    try {//from  www .j a v  a  2  s .c  om
        eventStreamAdminServiceStub = new EventStreamAdminServiceStub(
                Utils.replaceSystemProperty(DAS_EVENT_STREAM_EP));
        Options eventReciverOptions = eventStreamAdminServiceStub._getServiceClient().getOptions();
        if (eventReciverOptions == null) {
            eventReciverOptions = new Options();
        }
        String username;
        if (!tenantDomain.equals(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME)) {
            username = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUserRealm()
                    .getRealmConfiguration().getAdminUserName() + "@" + tenantDomain;
        } else {
            username = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUserRealm()
                    .getRealmConfiguration().getAdminUserName();
        }

        JWTClient jwtClient = DeviceMgtAPIUtils.getJWTClientManagerService().getJWTClient();

        String authValue = AUTHORIZATION_HEADER_VALUE + " "
                + new String(Base64.encodeBase64(jwtClient.getJwtToken(username).getBytes()));

        List<Header> list = new ArrayList<>();
        Header httpHeader = new Header();
        httpHeader.setName(AUTHORIZATION_HEADER);
        httpHeader.setValue(authValue);
        list.add(httpHeader);//"https"

        eventReciverOptions.setProperty(HTTPConstants.HTTP_HEADERS, list);
        eventReciverOptions.setProperty(HTTPConstants.CUSTOM_PROTOCOL_HANDLER,
                new Protocol(DEFAULT_HTTP_PROTOCOL,
                        (ProtocolSocketFactory) new SSLProtocolSocketFactory(sslContext),
                        Integer.parseInt(Utils.replaceSystemProperty(DAS_PORT))));

        eventStreamAdminServiceStub._getServiceClient().setOptions(eventReciverOptions);
        for (String streamContent : streamList) {
            JSONParser jsonParser = new JSONParser();
            JSONObject steamJson = (JSONObject) jsonParser.parse(streamContent);
            String name = (String) steamJson.get("name");
            String version = (String) steamJson.get("version");
            String streamId = name + ":" + version;
            if (eventStreamAdminServiceStub.getStreamDefinitionDto(streamId) == null) {
                eventStreamAdminServiceStub.addEventStreamDefinitionAsString(streamContent);
            }
        }
    } finally {
        cleanup(eventStreamAdminServiceStub);
        PrivilegedCarbonContext.endTenantFlow();
    }
}

From source file:org.wso2.carbon.device.mgt.jaxrs.service.impl.admin.DeviceTypePublisherAdminServiceImpl.java

@Override
@POST//from w  w  w  .j  a  v  a2 s  .c o  m
@Path("/deploy/{type}")
public Response doPublish(@PathParam("type") String type) {

    try {
        //Getting the tenant Domain
        String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain();
        String username = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername();
        String tenantAdminUser = username + "@" + tenantDomain;

        String keyStorePassword = ServerConfiguration.getInstance()
                .getFirstProperty("Security.KeyStore.Password");
        String trustStorePassword = ServerConfiguration.getInstance()
                .getFirstProperty("Security.TrustStore.Password");
        String keyStoreLocation = ServerConfiguration.getInstance()
                .getFirstProperty("Security.KeyStore.Location");
        String trustStoreLocation = ServerConfiguration.getInstance()
                .getFirstProperty("Security.TrustStore.Location");

        //Call to load the keystore.
        loadKeyStore(keyStoreLocation, keyStorePassword);
        //Call to load the TrustStore.
        loadTrustStore(trustStoreLocation, trustStorePassword);
        //Create the SSL context with the loaded TrustStore/keystore.
        initSSLConnection();
        JWTClient jwtClient = DeviceMgtAPIUtils.getJWTClientManagerService().getJWTClient();

        String authValue = AUTHORIZATION_HEADER_VALUE + " "
                + new String(Base64.encodeBase64(jwtClient.getJwtToken(tenantAdminUser).getBytes()));

        List<Header> list = new ArrayList<Header>();
        Header httpHeader = new Header();
        httpHeader.setName(AUTHORIZATION_HEADER);
        httpHeader.setValue(authValue);
        list.add(httpHeader);//"https"

        File directory = new File(CAR_FILE_LOCATION + File.separator + type);
        if (directory.isDirectory() && directory.exists()) {
            UploadedFileItem[] uploadedFileItems = loadCappFromFileSystem(type);
            if (uploadedFileItems.length > 0) {
                CarbonAppUploaderStub carbonAppUploaderStub = new CarbonAppUploaderStub(
                        Utils.replaceSystemProperty(IOT_MGT_URL));
                Options appUploaderOptions = carbonAppUploaderStub._getServiceClient().getOptions();
                if (appUploaderOptions == null) {
                    appUploaderOptions = new Options();
                }
                appUploaderOptions.setProperty(HTTPConstants.HTTP_HEADERS, list);
                appUploaderOptions.setProperty(HTTPConstants.CUSTOM_PROTOCOL_HANDLER,
                        new Protocol(DEFAULT_HTTP_PROTOCOL,
                                (ProtocolSocketFactory) new SSLProtocolSocketFactory(sslContext),
                                Integer.parseInt(Utils.replaceSystemProperty(IOT_MGT_PORT))));

                carbonAppUploaderStub._getServiceClient().setOptions(appUploaderOptions);
                carbonAppUploaderStub.uploadApp(uploadedFileItems);

                if (!DEVICE_MANAGEMENT_TYPE.equals(type.toLowerCase())) {
                    carbonAppUploaderStub = new CarbonAppUploaderStub(Utils.replaceSystemProperty(DAS_URL));
                    appUploaderOptions = carbonAppUploaderStub._getServiceClient().getOptions();
                    if (appUploaderOptions == null) {
                        appUploaderOptions = new Options();
                    }
                    appUploaderOptions.setProperty(HTTPConstants.HTTP_HEADERS, list);
                    appUploaderOptions.setProperty(HTTPConstants.CUSTOM_PROTOCOL_HANDLER,
                            new Protocol(DEFAULT_HTTP_PROTOCOL,
                                    (ProtocolSocketFactory) new SSLProtocolSocketFactory(sslContext),
                                    Integer.parseInt(Utils.replaceSystemProperty(DAS_PORT))));

                    carbonAppUploaderStub._getServiceClient().setOptions(appUploaderOptions);
                    carbonAppUploaderStub.uploadApp(uploadedFileItems);
                }
                int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
                Registry registry = DeviceMgtAPIUtils.getRegistryService().getConfigSystemRegistry(tenantId);
                if (!registry.resourceExists(DEFAULT_RESOURCE_LOCATION + type + ".exist")) {
                    Resource resource = new ResourceImpl();
                    resource.setContent("</exist>");
                    resource.setMediaType(MEDIA_TYPE_XML);
                    registry.put(DEFAULT_RESOURCE_LOCATION + type + ".exist", resource);
                }
            }
        } else {
            return Response.status(Response.Status.BAD_REQUEST).entity("\"Error, Artifact does not exist.\"")
                    .build();
        }

    } catch (Exception e) {
        log.error("Capp deployment failed due to " + e.getMessage(), e);
        return Response.status(Response.Status.INTERNAL_SERVER_ERROR)
                .entity("\"Error, Artifact deployment has failed\"").build();
    }

    return Response.status(Response.Status.CREATED).entity("\"OK. \\n Successfully uploaded the artifacts.\"")
            .build();
}

From source file:org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils.java

public static EventStreamAdminServiceStub getEventStreamAdminServiceStub()
        throws AxisFault, UserStoreException, JWTClientException {
    EventStreamAdminServiceStub eventStreamAdminServiceStub = new EventStreamAdminServiceStub(
            Utils.replaceSystemProperty(DAS_ADMIN_SERVICE_EP + EVENT_STREAM_CONTEXT));
    Options streamOptions = eventStreamAdminServiceStub._getServiceClient().getOptions();
    if (streamOptions == null) {
        streamOptions = new Options();
    }//from   w  w  w  .j a  v a 2 s.com
    String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain();
    String username = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUserRealm()
            .getRealmConfiguration().getAdminUserName() + "@" + tenantDomain;
    JWTClient jwtClient = DeviceMgtAPIUtils.getJWTClientManagerService().getJWTClient();

    String authValue = AUTHORIZATION_HEADER_VALUE + " "
            + new String(Base64.encodeBase64(jwtClient.getJwtToken(username).getBytes()));

    List<Header> list = new ArrayList<>();
    Header httpHeader = new Header();
    httpHeader.setName(AUTHORIZATION_HEADER);
    httpHeader.setValue(authValue);
    list.add(httpHeader);//"https"
    streamOptions.setProperty(HTTPConstants.HTTP_HEADERS, list);
    streamOptions.setProperty(HTTPConstants.CUSTOM_PROTOCOL_HANDLER,
            new Protocol(DEFAULT_HTTP_PROTOCOL,
                    (ProtocolSocketFactory) new SSLProtocolSocketFactory(sslContext),
                    Integer.parseInt(Utils.replaceSystemProperty(DAS_PORT))));
    eventStreamAdminServiceStub._getServiceClient().setOptions(streamOptions);
    return eventStreamAdminServiceStub;
}

From source file:org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils.java

public static EventReceiverAdminServiceStub getEventReceiverAdminServiceStub()
        throws AxisFault, UserStoreException, JWTClientException {
    EventReceiverAdminServiceStub receiverAdminServiceStub = new EventReceiverAdminServiceStub(
            Utils.replaceSystemProperty(DAS_ADMIN_SERVICE_EP + EVENT_RECIEVER_CONTEXT));
    Options eventReciverOptions = receiverAdminServiceStub._getServiceClient().getOptions();
    if (eventReciverOptions == null) {
        eventReciverOptions = new Options();
    }/*from   w  w w  .j a  v  a2 s.c  o m*/
    String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain();
    String username = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUserRealm()
            .getRealmConfiguration().getAdminUserName() + "@" + tenantDomain;
    JWTClient jwtClient = DeviceMgtAPIUtils.getJWTClientManagerService().getJWTClient();

    String authValue = AUTHORIZATION_HEADER_VALUE + " "
            + new String(Base64.encodeBase64(jwtClient.getJwtToken(username).getBytes()));

    List<Header> list = new ArrayList<>();
    Header httpHeader = new Header();
    httpHeader.setName(AUTHORIZATION_HEADER);
    httpHeader.setValue(authValue);
    list.add(httpHeader);

    eventReciverOptions.setProperty(HTTPConstants.HTTP_HEADERS, list);
    eventReciverOptions.setProperty(HTTPConstants.CUSTOM_PROTOCOL_HANDLER,
            new Protocol(DEFAULT_HTTP_PROTOCOL,
                    (ProtocolSocketFactory) new SSLProtocolSocketFactory(sslContext),
                    Integer.parseInt(Utils.replaceSystemProperty(DAS_PORT))));

    receiverAdminServiceStub._getServiceClient().setOptions(eventReciverOptions);
    return receiverAdminServiceStub;
}

From source file:org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils.java

public static EventPublisherAdminServiceStub getEventPublisherAdminServiceStub()
        throws AxisFault, UserStoreException, JWTClientException {
    EventPublisherAdminServiceStub eventPublisherAdminServiceStub = new EventPublisherAdminServiceStub(
            Utils.replaceSystemProperty(DAS_ADMIN_SERVICE_EP + EVENT_PUBLISHER_CONTEXT));
    Options eventReciverOptions = eventPublisherAdminServiceStub._getServiceClient().getOptions();
    if (eventReciverOptions == null) {
        eventReciverOptions = new Options();
    }/*ww  w .ja  va 2 s.com*/
    String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain();
    String username = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUserRealm()
            .getRealmConfiguration().getAdminUserName() + "@" + tenantDomain;
    JWTClient jwtClient = DeviceMgtAPIUtils.getJWTClientManagerService().getJWTClient();

    String authValue = AUTHORIZATION_HEADER_VALUE + " "
            + new String(Base64.encodeBase64(jwtClient.getJwtToken(username).getBytes()));

    List<Header> list = new ArrayList<>();
    Header httpHeader = new Header();
    httpHeader.setName(AUTHORIZATION_HEADER);
    httpHeader.setValue(authValue);
    list.add(httpHeader);

    eventReciverOptions.setProperty(HTTPConstants.HTTP_HEADERS, list);
    eventReciverOptions.setProperty(HTTPConstants.CUSTOM_PROTOCOL_HANDLER,
            new Protocol(DEFAULT_HTTP_PROTOCOL,
                    (ProtocolSocketFactory) new SSLProtocolSocketFactory(sslContext),
                    Integer.parseInt(Utils.replaceSystemProperty(DAS_PORT))));
    eventPublisherAdminServiceStub._getServiceClient().setOptions(eventReciverOptions);
    return eventPublisherAdminServiceStub;
}