ODS.ODSWebIDIdPVSPEx1
Using Virtuoso's WebID? Verify Proxy Service with an X.509 certificate WebID?: VSP Example
<?vsp declare webid, error, action, hostUrl, url, callback, certificate any; webid := get_keyword ('webid', params); error := get_keyword ('error', params); action := get_keyword ('go', params); if (length (webid) or length (error)) goto html; if (not length (action)) goto html; if (not is_http_ctx ()) { error := 'No certificate'; goto html; } hostUrl := http_request_header (http_request_header () , 'Host' , null , sys_connected_server_address ()); if (isstring (hostUrl) and strchr (hostUrl , ':') is null) { declare hp varchar; declare hpa any; hp := sys_connected_server_address (); hpa := split_and_decode (hp , 0 , '\0\0:'); if (hpa [1] <> '80') hostUrl := hostUrl || ':' || hpa [1]; } if (hostUrl not like 'https://%') hostUrl := 'https://' || hostUrl; certificate := client_attr ('client_certificate'); callback := hostUrl || '/ods/webid_demo.vsp'; url := sprintf ('http://id.myopenlink.net/ods/webid_verify.vsp?callback=%U&certificate=%U', callback, certificate); http_status_set (302); http_header (sprintf ('Location: %s\r\n', url)); return; html: ?> <html> <head> <title>WebID Verification Demo - VSP</title> </head> <body> <h1>WebID Verification Demo - VSP</h1> <div> This will check your X.509 Certificate's WebID watermark. <br/>Also note this service supports ldap, http, mailto, acct scheme based WebIDs. </div> <br/> <br/> <div> <form method="get"> <input type="submit" name="go" value="Check"/> </form> </div> <?vsp if (length (webid) or length (error)) { ?> <div> The return values are: <ul> <?vsp if (length (webid)) { ?> <li>WebID - <?V webid ?></li> <li>Timestamp in ISO 8601 format - <?V get_keyword ('ts', params) ?></li> <?vsp } if (length (error)) { ?> <li>Error - <?V error ?></li> <?vsp } ?> </ul> </div> <?vsp } ?> </body> </html>