Session Management in BI Platform REST SDK (RWS)
This blog describes session management in BOE 4.2 BI Platform REST SDK.
RWS APIs to get x-SAP-LogonToken:
Logon using username and password
Logon with token/serialized Seeeion
Logon with adsso
Logon trusted x509
Logoff (token must be in Header)
|host||IP Address / Name of the of the server|
|port||Port number (WACS)|
Header key with value is Token.
For All API this header is must (not for Logon APIs).
|Accept||Applicaiton/JSON OR Application/XML|
|Content-Type||Application/JSON OR Application/XML|
Must send the token to all RWS APIs in header “x-SAP-LogonToken”.
Till 4.2 SP03 logon REST APIs creates light weight “Enterprise Session” so that session count in “CMC->Sessions” not increasing. But when we use this same token to Web Intelligence REST APIs count will increase by 1 in “CMC->Sessions”.
Session management Issue:
Session created by RESTful web service (logon/long) doesn’t vanishes from CMC – Sessions tab after timeout (Issue reproducible only if user hits any raylight (Web Intelligence REST APIs))
Fixed : 4.2 SP02
Note :2359123 – RESTful logon token timeout doesn’t work accordingly
Change in Session type:
Session type Changed to Enterprise Session from the release 4.2 SP04 and onwards.
So that if user use any APIs mentioned in table , immediately session count will increase for the user in “CMC->Sessions” page.
Enterprise Session Token timeout default : 60 min.
Maximum timeout : 1440 min (24 Hrs).
Administrator can set this value in “CMC->Servers->WebApplicationContainerServer-> Right click on this server ->Properties->EnterpriseSession Timeout”.
http session timeout will not be applicable to Enterprise Sesison created using REST APIs.
Get LogonToken Workflow:
Method : POST Data Format: JSON
Method : POST Data Format: XML
Note: In XML format data will be xml encoded please decode the data if user is going to use in any other data format like in Headers or JSON Format.
Thanks for the nice blog its very well explained.
One thing, Where i can change session timeout value for rest SDK ?
Login to CMC (http://<hsot> : <port>/BOE/CMC)
Servers -> Web Application Container Server -> right click and select Properties
And change the value for “Enterprise Session Timeout”:
Can i change the default URL for restful webservices and use DNS name as URL like htttp://myreports.com/bipwrs
biprws is deployed on Web Application Container Server.
http://<host> you can use DNS name for this like any other web servers.
Port number default : 6405 (can change)
More About WACS : https://help.sap.com/doc/businessobject_product_guides_boebi31_en_wacs_whitepaper_en_pdf/3.1/en-US/wacs_whitepaper_en.pdf
I tried changing in WACS properties but it failed. It would either fail to restart the server or if I select to use the configure template it resets back to original state. Am i doing something wrong here?
are you using IP address in the place of <host>?
In properties you can change only port number for this service.
once you changed here please update same in CMC->Applications->RestFul WebServices.
Configuring RESTful web services:
WACS and your IT environment:
Configuring the reverse proxy :
IP Addresses, Host Names, and Domain Names: https://ist.mit.edu/network/ip
I got following response for the initial GET request:
Based on the response I did sent POST request but I'm getting the following error:
I checked that my user is in the Administrator group and the user itself and password are correct. I'm also able to log in via standard logon.
What I do not know is, where I can see the client type?
Can you please help?
Thank you very much!
check request Headers:
content-type = application/xml
accept = application/xml
Thanks a lot for the document. It is very helpful.
I have a problem, we are trying to use the API to read the folder users security.
I tried to look through the RESTFul API document but I cannot find it.
Do you know how to do it?
REST API is not available for this case. Need to get this using Java SDK