OSX show used ports or listening applications with their PID

On OSX you can display applications listening on a given port using the lsof the commands described below will show listening applications as well as the PID for each application

lsof -nP -i4TCP | grep LISTEN

lsof -nP -i4TCP:[PORT] | grep LISTEN

Where [PORT] is the given port you want to check for


lsof -nP -i4TCP:80 | grep LISTEN

Your output should look something similar to this :


idea      28856 ufasoli   15u  IPv4 0xdc1e11a68e7f918b      0t0  TCP 127.0.0.1:17434 (LISTEN)
idea      28856 ufasoli   52u  IPv4 0xdc1e11a690bab54b      0t0  TCP 127.0.0.1:6942 (LISTEN)
idea      28856 ufasoli  748u  IPv4 0xdc1e11a690b9dccb      0t0  TCP 127.0.0.1:63344 (LISTEN)
idea      28856 ufasoli 1076u  IPv4 0xdc1e11a68e7fa54b      0t0  TCP 127.0.0.1:54243 (LISTEN)
idea      28856 ufasoli 1082u  IPv4 0xdc1e11a67124254b      0t0  TCP 127.0.0.1:54266 (LISTEN)
rapportd  28871 ufasoli    5u  IPv4 0xdc1e11a665f15b6b      0t0  TCP *:51387 (LISTEN)
node      33709 ufasoli   28u  IPv4 0xdc1e11a66304354b      0t0  TCP 127.0.0.1:4200 (LISTEN)
java      34245 ufasoli  168u  IPv6 0xdc1e11a66dd5f11b      0t0  TCP *:52439 (LISTEN)
java      34245 ufasoli  182u  IPv6 0xdc1e11a6803af4db      0t0  TCP *:33389 (LISTEN)
java      34245 ufasoli  183u  IPv6 0xdc1e11a6803afafb      0t0  TCP *:8080 (LISTEN)

Soap WebService NTLM Authentication with Apache CXF and Spring

Recently I had the "chance" to consume an old school WebService in good old SOAP on top of that it was a C# WebService using the dataset construct which is in itself a world of pain... but we will not talk about that here

A more easy thing to tackle is the NTLM authentication, below is how I implemented it using Spring and Spring boot :

1. Define a set of custom properties in the application.yaml file
 ws:
    base-url: "http://host/ws.asmx?wsdl"
    username: "myusername"
    password: "mypassword"
    authentication: "NTLM"
2. Map the properties in application.yaml to a Java class

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.stereotype.Component;


@Component
@EnableConfigurationProperties
@ConfigurationProperties(prefix = "app")
@Data
public class YAMLConfig {

    private Ws ws;    

    @Data
    public static class Ws {
        private String baseUrl;
        private String username;
        private String password;
        private String authentication;


    }   

}


import org.apache.cxf.endpoint.Client;
import org.apache.cxf.frontend.ClientProxy;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import org.apache.cxf.transport.http.HTTPConduit;
import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
import org.springframework.stereotype.Service;
import org.w3c.dom.Element;


import javax.xml.bind.JAXBContext;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
//Injection and other properties omitted for brevity
public void consume(){

        JaxWsProxyFactoryBean factory1 = new JaxWsProxyFactoryBean();
        factory1.setServiceClass(EntityInformationSoap.class);
        factory1.setAddress(yamlConfig.getWs().getBaseUrl());
        factory1.setUsername(yamlConfig.getWs().getUsername());
        factory1.setPassword(yamlConfig.getWs().getPassword());

        EntityInformationSoap service = (EntityInformationSoap) factory1.create();
        Client client = ClientProxy.getClient(service);

        HTTPConduit conduit = (HTTPConduit) client.getConduit();
        conduit.getAuthorization().setAuthorizationType(yamlConfig.getWs().getAuthentication());
        conduit.getAuthorization().setUserName(yamlConfig.getWs().getUsername());
        conduit.getAuthorization().setPassword(yamlConfig.getWs().getPassword());

        HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
        httpClientPolicy.setConnectionTimeout(36000);
        httpClientPolicy.setAllowChunking(false);
        conduit.setClient(httpClientPolicy);
}

OSX show used ports or listening applications with their PID

On OSX you can display applications listening on a given port using the lsof the commands described below will show listening application...