Error when retrieving Public table data using SOAP
Unable to retrieve a record from a table using SOAP web service.
Public table is queried (the sys_public table has an entry for this table and the value is true) and the following error is returned to the SOAP client application:
com.glide.processors.soap.SOAPProcessingException: insufficient rights to read <table_name> <sys_id></faultstring>
<detail>com.glide.processors.soap.SOAPProcessingException: insufficient rights to read <table_name> <sys_id>
When the SOAP processor receives a request to access a public page, it is processed as the "guest" user. The guest user is unable to process the SOAP request, even though it is a public page.
To workaround the issue, use a database view that is not public to:
- enable the correct user to authenticate
- correctly evaluate against all applicable ACLs
- Create a database view against the table in question that is public (do not make the view public).
- Add read/create/write ACLs to the database view.
- Consume the WSDL of the database view.
- Run the SOAP requests against the view.
|Warning: Do not add the database view to the sys_public page. This view must not be public, or the same error occurs.|