Skip to content

Describe web session life time #728

@alexbudarov

Description

@alexbudarov

Description of the bug or enhancement

See questions like asked in this forum topic: https://www.cuba-platform.com/discuss/t/session-timeout/13027

If I am not wrong, currently in the developer's manual there is no single page describing aspects of web session life time.
Only scattered configuration properties.

We should create separate page that describes behavior in one place.

What should be said:

  • In web client there are two sessions: web session and CUBA user session. Web session stored Vaadin UI components and is stored on web layer, while CUBA user session is stored on core layer in jgroups cluster, it stores security data and session attributes.
  • Lifetime of these sessions are configured by 2 different parameters: cuba.httpSessionExpirationTimeoutSec and cuba.userSessionExpirationTimeoutSec
  • Ideally these two parameters should have the same values. If not equal, CUBA user session timeout should be > web session timeout.
  • In web client there is such thing as heartbeat. If at least one browser window is active, web client periodically pings both web session and user session, not allowing it to expire.
  • heartbeat interval is configured by cuba.web.uiHeartbeatIntervalSec parameter.
  • you can turn on "cuba.web.closeIdleHttpSessions" and enable closing of idle http sessions, regardless of heartbeat.
  • each heartbeat request fires a SessionHeartbeatEvent - fired on heartbeat requests from a client web browser. (already mentioned in docs). You can use if for your own purposes.

Consult with web team guys what else should be mentioned.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions