Alexander Koblov · Nov 25, 2024 go to post

Hi Daniel.

This 404 error shows IIS page. For the debugging purposes the recommendation is to enable PassThrough responses in IIS: https://docs.intersystems.com/iris20242/csp/docbook/DocBook.UI.Page.cls?KEY=GCGI_webserver#GCGI_configiis_soapfault

IRIS returns 404 when the page or class does not exist, and when PROTECT error happens.

So enable the PROTECT events in the Audit, and check if anything is logged there

Check that IIS is configured correctly to forward the request that returns 404 to the Web Gateway and then IRIS

Hi Yaron.

SQL Injection police here ;-)

You can pass query parameters to %ExecDirect as well

SET variable = 2000
SET sql = "SELECT Column FROM Table WHERE ID = ?"
DO ##class(%SQL.Statement).%ExecDirect(, sql, variable)

I wonder if indeed server and port do not match with the ones in the ssldefs.ini

What is the connection string and what is the contents of ssldefs.ini?

No way, unfortunately. Unless you can use ODBC from your project to access Caché, not InterSystems.Data.CacheClient.dll

What is the authentication method for this web-application? I would suggest to you to have delegated authentication (ZAUTHENTICATE), get the Cookie there and inspect it

For example, in the sample here ZAUTHENTICATE checks OAuth2 token. You can check Cookie there

Adjust also GetCredentials accordingly

Please describe your use case. What you ask for is not possible, however perhaps there are other solutions

Hi Roy,

I wonder if you used some LLM to write big chunks of this article.

For example, CSP.ini in section 4.2 looks strange to me

Indeed, there is a System_Manager parameter in CSP.ini, however its value is allowed IP addresses. And there is no such parameter as System_Manager_Host

There is no such section as WEBAPP in CSP.ini to my knowledge. There is a APP_PATH. AutheEnabled, Timeout, and LockCSPName are properties of the web-application, but you generally specify them for the web-application in IRIS or in the Installation Manifest, not in the CSP.ini

Where did you find these parameters? I have not found them documented in https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GCGI_cspini

Additionally, in 5.1 you have iam listed as a part of IrisCluster definition, and then in the implementation guide there are steps 3 and 4. And step 3 suggests to deploy IAM using IrisCluster operator, and step 4 is to deploy IrisCluster itself. However IAM is a part of IrisCluster in the sample above

Take a look at class %SYS.ProcessQuery

USER>set q=##class(%SYS.ProcessQuery).ExamStackByPid($J,1)
 
USER>zw ^mtemp(q)
^mtemp(4,"*FORMAT")=1
^mtemp(4,"*LEVEL",1)=1
^mtemp(4,"*LEVEL",2)=2
^mtemp(4,"*STACK")=2
^mtemp(4,"*STACK",0,"V","$D")=""
...
^mtemp(4,"*STACK",1,"I")="1^S^^^0^"
^mtemp(4,"*STACK",1,"L")="  1   SIGN ON                            "
^mtemp(4,"*STACK",1,"S")=""
^mtemp(4,"*STACK",1,"T")="SIGN ON                           "
^mtemp(4,"*STACK",2,"I")="2^e^^^0^S q=##CLASS(%SYS.ProcessQuery).ExamStackByPid($J,1)"
^mtemp(4,"*STACK",2,"L")="  2   $$EXTFUNC                          ~S q=##CLASS(%SYS.ProcessQuery).ExamStackByPid($J,1)"
^mtemp(4,"*STACK",2,"S")="~S q=##CLASS(%SYS.ProcessQuery).ExamStackByPid($J,1)"
^mtemp(4,"*STACK",2,"T")="$$EXTFUNC                         "
^mtemp(4,"*VARS")=1