System Properties
Following system properties can be used to change the defaults of Webswing.
Webswing Server and Webswing Cluster Server
Set these in server startup script.
Property | Description | Default Value |
---|---|---|
webswing.warLocation |
Location of WAR file | |
webswing.rootDir |
Root directory | ${user.dir} |
webswing.propertiesFile |
Path to properties file (including file name) | |
webswing.configFile |
Path to config file (including file name) | |
webswing.configReloadIntervalMs |
Number of milliseconds for config reload interval | 1000 |
webswing.defaultWelcomePage |
Path to default welcome page resource to show when "/" is accessed | /selector/index.html |
webswing.fileServletWaitTimeout |
Number of milliseconds to wait for a file to be ready for download | 300000 |
webswing.proxyContextPath |
Explicit servlet context path | |
webswing.httpsOnly |
Force https only, sets cookies as Secure and SameSite to NONE by default |
true if config has https enabled and http disabled |
webswing.cookieSameSite |
Value for SameSite cookie attribute if server runs in HTTPS only mode |
NONE |
webswing.disableHttpSecurityHeaders |
Disable HTTP security headers - X-Frame-Options , X-Content-Type-Options , X-XSS-Protection , Referrer-Policy , Strict-Transport-Security |
false |
webswing.keep.instances |
How many closed instances should be kept in memory. The instances can be viewed in Admin Console (-1 for infinite) | -1 |
webswing.websocketMessageSizeLimit |
Maximum size of websocket message in bytes | 5242880 |
webswing.websocketMessageTimeout |
Timeout for the websocket message to be sent in milliseconds | 30000 |
jetty.request.header.size |
Number of bytes as maximum request/response header size when using embedded Jetty | 524288 |
Server Statistics
Set these in server startup script.
Property | Description | Default Value |
---|---|---|
webswing.stats.interval |
Granularity of the metrics, average of last N seconds | 10 |
webswing.stats.historySize |
Number of observations kept in memory | 60 |
webswing.stats.memUsageWarn |
Threshold to generate a memory usage warning | 0.8 (80%) |
webswing.stats.latencyWarn |
Threshold to generate a network latency warning (milliseconds) | 700 |
webswing.stats.pingWarn |
Threshold to generate a ping warning (milliseconds) | 500 |
Application
Set these in application configuration field vmArgs
.
Property | Description | Default Value |
---|---|---|
webswing.edtTimeout |
Timeout in seconds after which the application is considered to be not responding if Event Dispatch Thread is not responding | 10 |
webswing.syncCallTimeout |
Number of milliseconds to wait for a synchronized WebSocket call between application instance and server to be successful | 3000 |
webswing.waitForExit |
Default timeout in milliseconds for the application to exit gracefully, after this timeout the application will be forcefully terminated | 30000 |
webswing.heartbeatTimeout |
Timeout in milliseconds to check application connection with its parent process, after this timeout expires the application is scheduled for shutdown because parent process is considered killed | 5000 |
webswing.doubleClickMaxDelay |
Timeout in milliseconds between mouse clicks to be considered as multi-click | 750 |
webswing.logLevel |
Log level of application logger (0 - TRACE, 1 - DEBUG, 2 - INFO, 3 - WARNING, 4 - ERROR, 5 - FATAL) | 2 |
webswing.paintAckTimeout |
Timeout in milliseconds to wait for acknowledgment from browser that the paint request has finished | 5000 |
webswing.screenResolution |
Value of Toolkit.getScreenResolution() | 96 |
webswing.drawDelayMs |
Webswing paint dispatching loop frequency | 33 |
webswing.ddImageCacheSize |
Directdraw image cache size | 128 |
webswing.ddConstCacheSize |
Directdraw initial rendering constant cache size | 8192 |
webswing.ddMaxConstCacheSize |
Directdraw maximum rendering constant cache size (auto-increase when rendering frame reaches the current cache size) | 262144 |
directdraw.serverSideGradients |
Directdraw will not render gradients in html canvas but in Java 2D (edge cases of gradient definitions can look differently in java and html canvas) | false |
directdraw.drawStringAsPath |
Use server side fonts to render text as to bezier curves (slow) | false |
directdraw.fontsProvided |
Force Webswing to look for fonts defined in CSS instead of downloading it through WebSocket | false |
webswing.encodingFormat |
DirectDraw has to be disabled, PNG or WEBP, use WEBP for low bandwidth | PNG |
webswing.webpQuality |
Image quality, low value produces smaller image | 20 |
webswing.render.diff |
Removes pixels from final rendering that have not changed, buggy | false |
webswing.render.crop |
Removes transparent slices of the image from border parts | false |
JWT
In order for the custom configuration to work, you must set the custom values on every module - Webswing Server (Cluster Server), Admin Console Server, Session Pool.
Property | Description | Default Value |
---|---|---|
webswing.jwt.serialization.gzip |
Use GZIP compression of JWT token | true |
webswing.jwt.serialization.proto |
Use protobuf serialization of JWT token | true |
webswing.jwt.serialization.encryption |
Use encryption of JWT token | true |
webswing.jwt.token.handshake.expiration |
Expiration of handshake token in milliseconds | 60000 |
webswing.jwt.token.access.expiration |
Expiration of access token in milliseconds | 300000 |
webswing.jwt.token.refresh.expiration |
Expiration of refresh token in milliseconds | 1800000 |
webswing.jwt.token.loginSession.expiration |
Expiration of login session token in milliseconds | 300000 |
webswing.jwt.token.transfer.expiration |
Expiration of transfer token in milliseconds | 1800000 |
webswing.jwt.token.adminConsoleLogin.expiration |
Expiration of admin console login token in milliseconds | 1800000 |
webswing.jwt.token.adminConsoleAccess.expiration |
Expiration of admin console access token in milliseconds | 300000 |
webswing.jwt.token.adminConsoleRefresh.expiration |
Expiration of admin console refresh token in milliseconds | 1800000 |
webswing.jwt.token.adminConsoleThreadDump.expiration |
Expiration of admin console thread dump token in milliseconds | 1800000 |
webswing.jwt.clockskew.seconds |
Set maximum clock skew interval between servers in milliseconds | 180000 |
webswing.jwt.adminConsole.accessId.expiration |
Expiration of admin console access id used in login process in milliseconds | 300000 |