Curl SharePoint login
På arbejde har vi et intranet, der kører SharePoint, der kan man blandt andet se hvad kantinen serverer.
Da jeg ikke gider starte min browser op for at navigere ind og se om vi skal dreje til højre eller venstre (pølsevognen) for at komme til frokost, har jeg skrevet et lille script, der kan finde oplysningerne for mig.
En hurtig curl
viser at sitet kører Microsoft IIS 7.5 og benytter NTLM til autorisation:
$curl -I http://intra
HTTP/1.1 401 Unauthorized
Content-Length: 0
Server: Microsoft-IIS/7.5
SPRequestGuid: 09f00c71-674c-46df-a8ef-9d47c64a5d51
WWW-Authenticate: NTLM
X-Powered-By: ASP.NET
MicrosoftSharePointTeamServices: 14.0.0.6106
Date: Thu, 07 Jun 2012 10:36:37 GMT
curl
understøtter fire forskellige former for authentication: --basic
, --digest
, --ntlm
og --negotiate
.
Jeg vælger blot at benytte den generelle auth parameter --anyauth
den finder selv den rigtige auth metode.
Derudover tilføjer jeg --location
så curl
følger den redirect den får fra serveren ved auth OK.
Scriptet kommer derfor til at se sådan her ud:
#!/bin/sh
OUT=`tempfile`
curl -Ss --location --anyauth --user USERNAME:PASSWORD \
http://intra/ > $OUT
Herefter er det blot at trække dagens menu ud med grep og et relativt simpelt regulært udtryk.
Nu skal jeg bare have fixet så scriptet kan sende oplysningerne til #foodchannel på vores udviklingsmakines IRC server...