Publicando no soquete usando curl

1

Estou lutando para me enrolar e socat para jogar bem juntos. A situação é a seguinte:

  1. Eu posto XML para fazer login em um sistema.
  2. A mensagem de retorno contém o token de autenticação.
  3. Eu postei pedidos subsequentes com o token. Ressalva: se a conexão for interrompida, o token expira, por isso não posso simplesmente usar ondulação simples.

Funciona bem no PowerShell: link

No entanto, preciso que isso seja executado no Linux. Desde que eu preciso da conexão para persistir, decidi usar socat.

Se eu executar isso no POST, o XML:

curl http://$target_ip -d @./xml/login.xml

Eu recebo uma resposta adequada do sistema. Mas a conexão está fechada, então não posso reutilizar o token.

No entanto, se eu tentar isso (claro, depois da socat):

curl --unix-socket /tmp/$target_ip.sock -d @./xml/login.xml

Reclame que eu não tenho o conjunto de URLs.

Idéias?

Obrigado como sempre.

    
por Shiunbird 15.01.2018 / 16:34

1 resposta

0

Curl pode se conectar a um soquete Unix, mas o nome do host é necessário para a solicitação HTTP.

Você já tentou configurar socat para ouvir 127.0.0.1 e conectar-se ao endereço IP (não nome) do sistema de destino, adicionando o nome do host da url para / etc / hosts com um endereço IP de 127.0.0.1 e, em seguida usando o URL não -muprimido na chamada de curl?

Eu tive algumas dificuldades no passado com serviços sendo executados em portas não padrão - portanto, se você já tem um servidor web em execução, precisará usar namespaces de rede ou alguma outra mágica para que o curl e o servidor remoto acho que você está se conectando à porta pretendida.

Alternativamente, você pode usar o URL original, o socat escutando em uma porta não padrão e especificar a opção --resolve em curl ao invés de ter que fudge a porta e / ou adicionar uma entrada em / etc / hosts ( requer ondulação > = 7,57)

Embora seja muito incomum que você tenha um token ligado à sessão TCP, parece ainda mais surpreendente que isso seja para um http em vez de um serviço https.

    
por 15.01.2018 / 18:23