CSP Gateway Configuration Guide - InterSystems Documentation
CSP Gateway Configuration Guide - InterSystems Documentation
CSP Gateway Configuration Guide - InterSystems Documentation
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Web Servers for Microsoft Windows<br />
3. To access the <strong>CSP</strong> Web <strong>Gateway</strong> Management page, point your browser at one of the following locations. Although<br />
<strong>CSP</strong> pages are served through the higher-performing module (mod_csp.so), the <strong>CSP</strong> Web <strong>Gateway</strong> Management page<br />
is accessed through the CGI module dedicated to this purpose (nph-<strong>CSP</strong>cgiSys).<br />
http://localhost:/csp/bin/Systems/Module.cxw<br />
http://localhost:/csp-bin/nph-<strong>CSP</strong>cgiSys<br />
If you see an Unauthorized User error message, refer to the section on security considerations.<br />
The <strong>CSP</strong> engine is automatically invoked for requested files that contain a .csp, .cls, or .zen extension, such as<br />
http://localhost:/csp/samples/menu.csp<br />
4.1.5 Using the ISAPI Filter (<strong>CSP</strong>msf1.dll)<br />
You can use this filter with all IIS connectivity options. It can be deployed to provide essential functionality in the following<br />
two areas.<br />
4.1.5.1 Processing WebDAV Requests<br />
The use of the filter is essential if <strong>CSP</strong> is used to implement WebDAV services.<br />
Many Microsoft WebDAV clients include the Translate: f header in the HTTP request headers sent to the Web server<br />
with each and every request. IIS, on detecting this header directive, attempts to process the request directly without forwarding<br />
it on to any further ISAPI extensions (such as the <strong>CSP</strong> <strong>Gateway</strong>) which might otherwise have been called in the absence<br />
of this header. This behavior effectively prohibits <strong>CSP</strong> from processing WebDAV requests.<br />
The Translate: f header is essentially a way of avoiding the overloading of the GET method in the WebDAV protocol.<br />
HTTP GET usually means get (that is, run) the page; WebDAV clients expect this method to get the source to the page<br />
instead. IIS cannot possibly implement this latter functionality for <strong>CSP</strong>-based content because the physical content (or<br />
source code) is associated with the Caché server and not the Web server. Therefore, requests from a Microsoft WebDAV<br />
client working to a <strong>CSP</strong>-based WebDAV server through IIS fail with HTTP Forbidden or File doesn't exist<br />
errors.<br />
The filter works around this problem by examining the incoming request stream and translating Translate: f header<br />
directives to Translate: g. IIS then passes the request on to the <strong>CSP</strong> <strong>Gateway</strong>, if appropriate.<br />
4.1.5.2 Processing Multiline HTTP Request Headers<br />
IIS does not correctly process header directives that are split over multiple lines. In fact the whole HTTP header block can<br />
become badly corrupted.<br />
Recent tests demonstrated that in some cases the affected header block can become corrupted to the extent that it is not<br />
possible to always work around the problem in the <strong>Gateway</strong> code (that is, after the corruption had occurred). See the<br />
example below.<br />
The filter corrects this problem by removing carriage-return-linefeeds (CRLs) from individual header directives before IIS<br />
has a chance to parse the header block.<br />
Example of the problem: Consider the following request header block.<br />
POST /csp/xds/XDSRequest.csp HTTP/1.1<br />
Accept: text/html, text/plain, text/xml, image/gif, image/jpeg, */*<br />
Content-Length: 1787<br />
certAlias: unknowncert<br />
SOAPAction: \"" Content-Type: multipart/related; type="text/xml";" \<br />
boundary=--boundary<br />
421.41176470588235291359.470588235294118--<br />
User-Agent: HttpClient/1.4.2<br />
Mozilla/4.0<br />
Host: localhost<br />
Connection: keep-alive<br />
68 <strong>CSP</strong> <strong>Gateway</strong> <strong>Configuration</strong> <strong>Guide</strong>