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 --locationcurl 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...