Openbravo Issue Tracking System - Openbravo ERP
View Issue Details
0050873Openbravo ERPA. Platformpublic2022-11-14 10:002022-11-14 15:43
AugustoMauch 
AugustoMauch 
normalcriticalhave not tried
closedfixed 
5
 
PR22Q4.1PR22Q4.1 
Core
No
0050873: Timeout of Openbravo standard session is set to very low value if a request to a webservice is done using that session
In Openbravo there are at least two different session timeout configurations:
- For standard session the value defined in the session-timeout context parameter is used (default: 60 minutes) [1]
- For webservice sessions the timeout is defined to a much smaller value (default: 60 seconds) [2]

The problem is that within a standard Openbravo session a request is done to a webservice endpoint, the timeout of the standard session will be set to the timeout of webservice sessions (60 seconds). We should only do that if the session was created as a result of the the webservice request.


[1] https://gitlab.com/openbravo/product/openbravo/-/blob/master/src-db/database/sourcedata/AD_MODEL_OBJECT_PARA.xml#L255 [^]
[2] https://gitlab.com/openbravo/product/openbravo/-/blob/master/src/org/openbravo/service/web/BaseWebServiceServlet.java#L133 [^]
- Login in the Openbravo backoffice, i.e. https://livebuilds.openbravo.com/erp_pi_pgsql [^]
- Do not interact with the backoffice for two minutes and then try to open any window (i.e. Sales Order). This will work as expected because the timeout for standard sessions is longere
- Within that session make a request to a webservice (i.e. by entering this in the browser url input: https://livebuilds.openbravo.com/erp_pi_pgsql/org.openbravo.service.json.jsonrest/Country [^])
- Wait for a couple of minutes and try to open any window. You will not be able because the session will have expired
No tags attached.
blocks defect 0050872 closed AugustoMauch Timeout of Openbravo standard session is set to very low value if a request to a webservice is done using that session 
Issue History
2022-11-14 10:01AugustoMauchTypedefect => backport
2022-11-14 10:01AugustoMauchTarget Version => PR22Q4.1
2022-11-14 11:41hgbotNote Added: 0143511
2022-11-14 15:43hgbotNote Added: 0143576
2022-11-14 15:43hgbotResolutionopen => fixed
2022-11-14 15:43hgbotStatusscheduled => closed
2022-11-14 15:43hgbotFixed in Version => PR22Q4.1
2022-11-14 15:43hgbotNote Added: 0143577

Notes
(0143511)
hgbot   
2022-11-14 11:41   
Merge Request created: https://gitlab.com/openbravo/product/openbravo/-/merge_requests/760 [^]
(0143576)
hgbot   
2022-11-14 15:43   
Merge request merged: https://gitlab.com/openbravo/product/openbravo/-/merge_requests/760 [^]
(0143577)
hgbot   
2022-11-14 15:43   
Directly closing issue as related merge request is already approved.

Repository: https://gitlab.com/openbravo/product/openbravo [^]
Changeset: 706dc417555373acf7af7d6100167ea554a3f247
Author: Augusto Mauch <augusto.mauch@openbravo.com>
Date: 14-11-2022 11:40:48
URL: https://gitlab.com/openbravo/product/openbravo/-/commit/706dc417555373acf7af7d6100167ea554a3f247 [^]

Fixes ISSUE-50873: ws request should not update inactive interval in standard sessions

Sessions created as a result of webservice requests are supposed to expire before standard sessions (1 minute vs 60 minutes by default). To force the shorter
expiration date of webservice sessions, the max inactive timeout was set to the smaller value each time a request to a webservice is received.

The problem is that if the request to the webservice was done as part of a standard session, we were making the standard session short lived as well, and that
was not supposed to happen.

To fix this, now the max inactive timeout is given a small value only if the session was created as a result of the webservice request

---
M src/org/openbravo/service/web/BaseWebServiceServlet.java
---