rubyfox-server 2.17.3.2 → 2.19.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (160) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rubyfox/server/data/config/admin/descriptors/config_room.txt +10 -1
  3. data/lib/rubyfox/server/data/config/admin/descriptors/config_server.txt +90 -20
  4. data/lib/rubyfox/server/data/config/admin/descriptors/config_zone.txt +9 -0
  5. data/lib/rubyfox/server/data/config/admin/descriptors/runtime_room.txt +11 -0
  6. data/lib/rubyfox/server/data/config/admin/descriptors/runtime_user.txt +3 -3
  7. data/lib/rubyfox/server/data/config/core.xml +4 -4
  8. data/lib/rubyfox/server/data/config/default.words.txt +11 -0
  9. data/lib/rubyfox/server/data/config/log4j.properties +1 -2
  10. data/lib/rubyfox/server/data/config/server.xml +1 -1
  11. data/lib/rubyfox/server/data/data/GeoLite2-Country.mmdb +0 -0
  12. data/lib/rubyfox/server/data/data/bannedusers/users.bin +0 -0
  13. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/bootstrap.jar +0 -0
  14. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/catalina-tasks.xml +39 -39
  15. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/catalina.sh +0 -0
  16. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/ciphers.sh +0 -0
  17. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/commons-daemon-native.tar.gz +0 -0
  18. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/commons-daemon.jar +0 -0
  19. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/configtest.sh +0 -0
  20. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/daemon.sh +0 -0
  21. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/digest.sh +0 -0
  22. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/makebase.sh +0 -0
  23. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/setclasspath.sh +0 -0
  24. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/shutdown.sh +0 -0
  25. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/startup.sh +0 -0
  26. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/tomcat-juli.jar +0 -0
  27. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/tomcat-native.tar.gz +0 -0
  28. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/tool-wrapper.sh +0 -0
  29. data/lib/rubyfox/server/data/lib/apache-tomcat/bin/version.sh +0 -0
  30. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/Catalina/localhost/rewrite.config +1 -1
  31. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/catalina.policy +263 -263
  32. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/catalina.properties +209 -207
  33. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/context.xml +31 -31
  34. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/jaspic-providers.xml +23 -23
  35. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/jaspic-providers.xsd +52 -52
  36. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/keystore.jks +0 -0
  37. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/server.xml +177 -161
  38. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/tomcat-users.xml +18 -7
  39. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/tomcat-users.xsd +59 -59
  40. data/lib/rubyfox/server/data/lib/apache-tomcat/conf/web.xml +4740 -4737
  41. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/annotations-api.jar +0 -0
  42. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/catalina-ant.jar +0 -0
  43. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/catalina-ha.jar +0 -0
  44. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/catalina-ssi.jar +0 -0
  45. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/catalina-storeconfig.jar +0 -0
  46. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/catalina-tribes.jar +0 -0
  47. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/catalina.jar +0 -0
  48. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/el-api.jar +0 -0
  49. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/jasper-el.jar +0 -0
  50. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/jasper.jar +0 -0
  51. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/jaspic-api.jar +0 -0
  52. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/jsp-api.jar +0 -0
  53. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/servlet-api.jar +0 -0
  54. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/sfs2x-ws-helper.jar +0 -0
  55. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-api.jar +0 -0
  56. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-coyote.jar +0 -0
  57. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-dbcp.jar +0 -0
  58. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-cs.jar +0 -0
  59. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-de.jar +0 -0
  60. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-es.jar +0 -0
  61. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-fr.jar +0 -0
  62. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-ja.jar +0 -0
  63. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-ko.jar +0 -0
  64. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-pt-BR.jar +0 -0
  65. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-ru.jar +0 -0
  66. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-i18n-zh-CN.jar +0 -0
  67. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-jdbc.jar +0 -0
  68. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-jni.jar +0 -0
  69. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-util-scan.jar +0 -0
  70. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-util.jar +0 -0
  71. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/tomcat-websocket.jar +0 -0
  72. data/lib/rubyfox/server/data/lib/apache-tomcat/lib/websocket-api.jar +0 -0
  73. data/lib/rubyfox/server/data/lib/javax.activation-1.2.0.jar +0 -0
  74. data/lib/rubyfox/server/data/lib/javax.mail.jar +0 -0
  75. data/lib/rubyfox/server/data/lib/js/JSApi.js +2 -1
  76. data/lib/rubyfox/server/data/lib/js/LibApi.js +181 -48
  77. data/lib/rubyfox/server/data/lib/sfs2x-admin.jar +0 -0
  78. data/lib/rubyfox/server/data/lib/sfs2x-cluster.jar +0 -0
  79. data/lib/rubyfox/server/data/lib/sfs2x-core.jar +0 -0
  80. data/lib/rubyfox/server/data/lib/sfs2x.jar +0 -0
  81. data/lib/rubyfox/server/data/sfs2x-service +26 -30
  82. data/lib/rubyfox/server/data/www/BlueBox.war +0 -0
  83. data/lib/rubyfox/server/data/www/HelloServlet/WEB-INF/web.xml +1 -3
  84. data/lib/rubyfox/server/data/www/ROOT/_css_/default.css +14 -6
  85. data/lib/rubyfox/server/data/www/ROOT/admin/assets/css/style.css +44 -2
  86. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/application.bundle.js +98 -61
  87. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/endors~mod-0~mod-1~mod-11~mod-12~mod-17~mod-6~mod-7~mod-8~mod-9.bundle.js +17357 -0
  88. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-0.bundle.js +4 -4
  89. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-1.bundle.js +3 -3
  90. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-10.bundle.js +101 -66
  91. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-11.bundle.js +544 -8
  92. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-12.bundle.js +915 -1480
  93. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-12~module-15~module-16~module-4.bundle.js +2665 -0
  94. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-13.bundle.js +606 -3093
  95. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-13~module-16~module-17~module-4.bundle.js +2665 -0
  96. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-14.bundle.js +764 -0
  97. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-15.bundle.js +71 -0
  98. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-16.bundle.js +1787 -0
  99. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-17.bundle.js +3383 -0
  100. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-4.bundle.js +121 -1009
  101. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-5.bundle.js +1214 -1744
  102. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-6.bundle.js +398 -666
  103. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-7.bundle.js +717 -192
  104. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-8.bundle.js +2117 -665
  105. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-9.bundle.js +613 -690
  106. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/vendors~mod-0~mod-1~mod-10~mod-11~mod-16~mod-5~mod-6~mod-7~mod-8.bundle.js +17357 -0
  107. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/vendors~mod-0~mod-1~mod-11~mod-12~mod-17~mod-5~mod-6~mod-7~mod-8~mod-9.bundle.js +17357 -0
  108. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/{vendors~module-0~module-1~module-13~module-4~module-5~module-7~module-8.bundle.js → vendors~mod-0~mod-1~mod-11~mod-12~mod-17~mod-5~mod-7~mod-8~mod-9.bundle.js} +2 -2
  109. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/vendors~module-12.bundle.js +807 -0
  110. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/vendors~module-13.bundle.js +807 -0
  111. data/lib/rubyfox/server/data/www/ROOT/admin/modules/cluster-configurator.html +32 -0
  112. data/lib/rubyfox/server/data/www/ROOT/admin/modules/cluster-monitor.html +185 -0
  113. data/lib/rubyfox/server/data/www/ROOT/admin/modules/cluster-updater.html +47 -0
  114. data/lib/rubyfox/server/data/www/ROOT/admin/modules/extension-deployer.html +84 -0
  115. data/lib/rubyfox/server/data/www/ROOT/admin/modules/zone-monitor.html +15 -8
  116. data/lib/rubyfox/server/data/www/ROOT/index.html +13 -23
  117. data/lib/rubyfox/server/data/www/host-manager/META-INF/context.xml +2 -2
  118. data/lib/rubyfox/server/data/www/host-manager/WEB-INF/jsp/404.jsp +2 -2
  119. data/lib/rubyfox/server/data/www/host-manager/{manager.xml → WEB-INF/manager.xml} +5 -1
  120. data/lib/rubyfox/server/data/www/host-manager/WEB-INF/web.xml +17 -0
  121. data/lib/rubyfox/server/data/www/host-manager/css/manager.css +141 -0
  122. data/lib/rubyfox/server/data/www/host-manager/images/tomcat.svg +967 -0
  123. data/lib/rubyfox/server/data/www/manager/META-INF/context.xml +2 -0
  124. data/lib/rubyfox/server/data/www/manager/WEB-INF/jsp/connectorCerts.jsp +1 -1
  125. data/lib/rubyfox/server/data/www/manager/WEB-INF/jsp/connectorCiphers.jsp +1 -1
  126. data/lib/rubyfox/server/data/www/manager/WEB-INF/jsp/connectorTrustedCerts.jsp +1 -1
  127. data/lib/rubyfox/server/data/www/manager/WEB-INF/jsp/sessionDetail.jsp +3 -3
  128. data/lib/rubyfox/server/data/www/manager/WEB-INF/jsp/sessionsList.jsp +1 -1
  129. data/lib/rubyfox/server/data/www/manager/WEB-INF/web.xml +17 -0
  130. data/lib/rubyfox/server/data/www/manager/css/manager.css +141 -0
  131. data/lib/rubyfox/server/data/www/manager/images/tomcat.svg +967 -0
  132. data/lib/rubyfox/server/data/www/manager/xform.xsl +74 -59
  133. data/lib/rubyfox/server/version.rb +1 -1
  134. metadata +30 -31
  135. data/lib/rubyfox/server/data/config/admin/icons/Analytics.png +0 -0
  136. data/lib/rubyfox/server/data/config/admin/icons/BanManager.png +0 -0
  137. data/lib/rubyfox/server/data/config/admin/icons/BlueBoxMonitor.png +0 -0
  138. data/lib/rubyfox/server/data/config/admin/icons/Console.png +0 -0
  139. data/lib/rubyfox/server/data/config/admin/icons/Dashboard.png +0 -0
  140. data/lib/rubyfox/server/data/config/admin/icons/ExtensionManager.png +0 -0
  141. data/lib/rubyfox/server/data/config/admin/icons/LicenseManager.png +0 -0
  142. data/lib/rubyfox/server/data/config/admin/icons/LogViewer.png +0 -0
  143. data/lib/rubyfox/server/data/config/admin/icons/ServerConfigurator.png +0 -0
  144. data/lib/rubyfox/server/data/config/admin/icons/ServletManager.png +0 -0
  145. data/lib/rubyfox/server/data/config/admin/icons/ZoneConfigurator.png +0 -0
  146. data/lib/rubyfox/server/data/config/admin/icons/ZoneMonitor.png +0 -0
  147. data/lib/rubyfox/server/data/lib/BlueBox.war +0 -0
  148. data/lib/rubyfox/server/data/lib/apache-tomcat/LICENSE +0 -1061
  149. data/lib/rubyfox/server/data/lib/apache-tomcat/NOTICE +0 -68
  150. data/lib/rubyfox/server/data/lib/apache-tomcat/README.md +0 -81
  151. data/lib/rubyfox/server/data/lib/apache-tomcat/RELEASE-NOTES +0 -174
  152. data/lib/rubyfox/server/data/lib/imap.jar +0 -0
  153. data/lib/rubyfox/server/data/lib/mailapi.jar +0 -0
  154. data/lib/rubyfox/server/data/lib/pop3.jar +0 -0
  155. data/lib/rubyfox/server/data/lib/smtp.jar +0 -0
  156. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/module-12~module-13~module-9.bundle.js +0 -2634
  157. data/lib/rubyfox/server/data/www/ROOT/admin/assets/js/core/modules/vendors~module-9.bundle.js +0 -807
  158. data/lib/rubyfox/server/data/www/host-manager/images/tomcat.gif +0 -0
  159. data/lib/rubyfox/server/data/www/manager/images/tomcat.gif +0 -0
  160. /data/lib/rubyfox/server/data/data/buddylists/{BasicExamples/.keep → .keep} +0 -0
@@ -0,0 +1,32 @@
1
+ <cluster-configurator-module class="module" id="cluster-configurator-module">
2
+ <style>
3
+ #clc-progressBar {
4
+ width: 100%;
5
+ }
6
+ </style>
7
+
8
+ <view-stack id="clc-viewstack" class="flex-grow-1">
9
+ <div id="clc-loading" class="position-relative">
10
+ <div class="float-centered-loading">
11
+ Requesting data...
12
+ <div id="clc-progressBar"></div>
13
+ </div>
14
+ </div>
15
+ <div id="clc-main" class="pt-3 px-3">
16
+ <div id="clc-tabNavigator">
17
+ <ul class="nav nav-tabs" id="tabs" role="tablist"></ul>
18
+ <div class="tab-content" id="tabPanels"></div>
19
+ </div>
20
+
21
+ <div id="clc-buttons" class="sticky-bottom-controls py-3 bg-color-default">
22
+ <button id="clc-reloadButton" type="button" class="k-button k-primary mr-1"><i class="fas fa-redo-alt mr-1"></i>Reload</button>
23
+ <button id="clc-submitButton" type="button" class="k-button k-primary mx-1"><i class="fas fa-check-circle mr-1"></i>Submit</button>
24
+ <div class="custom-control custom-checkbox d-inline ml-1">
25
+ <input class="custom-control-input" type="checkbox" id="clc-backupCheck">
26
+ <label class="custom-control-label" for="clc-backupCheck">Backup</label>
27
+ </div>
28
+ </div>
29
+ </div>
30
+ </view-stack>
31
+
32
+ </cluster-configurator-module>
@@ -0,0 +1,185 @@
1
+ <cluster-monitor-module class="module" id="cluster-monitor-module">
2
+ <style>
3
+ .nodes-container {
4
+ max-height: 500px;
5
+ overflow-y: auto;
6
+ }
7
+
8
+ .name-cell {
9
+ line-height: 1em;
10
+ padding: .5em 0;
11
+ }
12
+
13
+ .name-admin-link {
14
+ color: #fd7d24 !important;
15
+ }
16
+
17
+ .name-admin-link:hover {
18
+ color: #d35802 !important;
19
+ }
20
+
21
+ #clm-nodesList .k-grouping-row {
22
+ /* background-color: #F4F4F4; */
23
+ }
24
+
25
+ #clm-nodesList .k-grouping-row td {
26
+ border-top: 1px solid #DDDDE4;
27
+ font-style: italic;
28
+ color: #6c757d;
29
+ }
30
+ </style>
31
+
32
+ <div id="clm-tabNavigator" class="p-3 flex-grow-1">
33
+ <ul class="nav nav-tabs" id="tabs">
34
+ <li class="nav-item">
35
+ <a class="nav-link active" id="clm-clusterStatus-tab" data-toggle="tab" href="#clm-clusterStatus" role="tab" aria-controls="clm-clusterStatus" aria-selected="true">Cluster Status</a>
36
+ </li>
37
+ <li class="nav-item">
38
+ <a class="nav-link" id="clm-orchestrationLog-tab" data-toggle="tab" href="#clm-orchestrationLog" role="tab" aria-controls="clm-orchestrationLog" aria-selected="false">Orchestration Log</a>
39
+ </li>
40
+ </ul>
41
+ <div class="tab-content" id="tabPanels">
42
+ <div class="tab-pane show active" id="clm-clusterStatus" role="tabpanel" aria-labelledby="clm-clusterStatus-tab">
43
+ <div class="d-flex mb-2">
44
+ <small id="clm-lobbyState">
45
+ <span class="active"><i class="fas fa-circle text-success"></i> Lobby is active</span>
46
+ <span class="inactive"><i class="fas fa-circle text-secondary"></i> Lobby is inactive</span>
47
+ <i class="fas fa-question-circle text-muted help" title="An active lobby manages all game nodes in the cluster; an inactive one doesn't participate in the cluster"></i>
48
+ </small>
49
+ </div>
50
+ <div class="row">
51
+ <div class="col-sm-6 col-lg-3 mb-3">
52
+ <div class="special-box gray">
53
+ <span class="special-box-label my-1">Uptime</span>
54
+ <div class="d-flex justify-content-around font-weight-bold special-box-container">
55
+ <div><div id="clm-uptimeDays">---</div><div class="value-label">days</div></div>
56
+ <div>:<div class="value-label">&nbsp;</div></div>
57
+ <div><div id="clm-uptimeHours">--</div><div class="value-label">hours</div></div>
58
+ <div>:<div class="value-label">&nbsp;</div></div>
59
+ <div><div id="clm-uptimeMinutes">--</div><div class="value-label">minutes</div></div>
60
+ </div>
61
+ </div>
62
+ </div>
63
+ <div class="col-sm-6 col-lg-3 mb-3">
64
+ <div class="special-box gray">
65
+ <span class="special-box-label my-1">Total Nodes</span>
66
+ <div class="d-flex justify-content-around font-weight-bold special-box-container">
67
+ <div><div id="clm-totalActiveNodes">---</div><div class="value-label">active</div></div>
68
+ <div><div id="clm-totalInactiveNodes">--</div><div class="value-label">inactive</div></div>
69
+ </div>
70
+ </div>
71
+ </div>
72
+ <div class="col-sm-6 col-lg-3 mb-3">
73
+ <div class="special-box gray">
74
+ <span class="special-box-label my-1">Total CCU</span>
75
+ <div class="d-flex justify-content-around font-weight-bold special-box-container">
76
+ <div><div id="clm-totalCcuLobby">---</div><div class="value-label">lobby</div></div>
77
+ <div><div id="clm-totalCcuNodes">--</div><div class="value-label">nodes</div></div>
78
+ </div>
79
+ </div>
80
+ </div>
81
+ <div class="col-sm-6 col-lg-3 mb-3">
82
+ <div class="special-box gray">
83
+ <span class="special-box-label my-1">Total Rooms</span>
84
+ <div class="d-flex justify-content-around font-weight-bold special-box-container">
85
+ <div><div id="clm-totalRooms">---</div><div class="value-label">on nodes</div></div>
86
+ </div>
87
+ </div>
88
+ </div>
89
+ </div>
90
+ <div class="nodes-container">
91
+ <div id="clm-nodesList"></div>
92
+ </div>
93
+ <div class="row no-gutters">
94
+ <div class="col-md-7 text-md-right pt-3">
95
+ <button id="clm-deactivateBt" type="button" class="btn btn-secondary btn-sm mb-1" title="Deactivate nodes" disabled><i class="fas fa-trash"></i> Deactivate <span id="clm-deactivateNodesNum">nodes</span></button>
96
+ <button id="clm-scaleUpBt" type="button" class="btn btn-secondary btn-sm mb-1" title="Scale-up"><i class="fas fa-angle-double-up"></i> Scale-up</button>
97
+ <button id="clm-refreshBt" type="button" class="btn btn-secondary btn-sm mb-1" title="Refresh now"><i class="fas fa-sync-alt"></i></button>
98
+ </div>
99
+ <div class="col-md-5 order-md-first pt-3">
100
+ <div id="clm-mainRangeContainer">
101
+ <label class="text-muted pr-1">Range:</label>
102
+ <select id="clm-mainRangeDD" class="dropdown-sm dropdown-secondary"></select>
103
+ </div>
104
+ </div>
105
+ </div>
106
+ <div id="clm-nodeMiniChartsContainer"></div>
107
+ </div>
108
+
109
+ <div class="tab-pane" id="clm-orchestrationLog" role="tabpanel" aria-labelledby="clm-orchestrationLog-tab">
110
+ <p class="text-muted"><em>Log messages are not displayed in realtime, but with a fixed refresh rate of 3 seconds. The list contains a maximum of <span id="clm_maxLogMsgs">xxx</span> messages; older messages are discarded as new ones are added.</em></p>
111
+ <div id="clm-logGrid"></div>
112
+ </div>
113
+ </div>
114
+ </div>
115
+
116
+ <div class="modal" id="clm-chartModal" tabindex="-1" role="dialog" aria-labelledby="clm-chartModalTitle" aria-hidden="true">
117
+ <div class="modal-dialog modal-dialog-centered modal-xl" role="document">
118
+ <div class="modal-content">
119
+ <div class="modal-header">
120
+ <div>
121
+ <h5 class="modal-title text-primary" id="clm-chartModalTitle"></h5>
122
+ <div class="d-flex align-items-baseline">
123
+ <label class="text-muted pr-1">Node:</label>
124
+ <strong id="clm-chartNodeAlias" class="pr-1"></strong>
125
+ <small id="clm-chartNodeName" class="pr-1"></small>
126
+ </div>
127
+ <div>
128
+ <label class="text-muted pr-1">Range:</label>
129
+ <select id="clm-chartRangeDD" class="dropdown-sm dropdown-secondary"></select>
130
+ </div>
131
+ </div>
132
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close">
133
+ <span aria-hidden="true">&times;</span>
134
+ </button>
135
+ </div>
136
+ <div class="modal-body">
137
+ <div id="clm-nodeDetailChartContainer"></div>
138
+ </div>
139
+ <!--
140
+ <div class="modal-footer">
141
+ <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
142
+ </div>
143
+ -->
144
+ </div>
145
+ </div>
146
+ </div>
147
+
148
+ <div class="modal" id="clm-scaleUpModal" tabindex="-1" role="dialog" aria-labelledby="clm-scaleUpModalTitle" aria-hidden="true">
149
+ <div class="modal-dialog modal-dialog-centered" role="document">
150
+ <div class="modal-content">
151
+ <div class="modal-header">
152
+ <h5 class="modal-title text-primary" id="clm-scaleUpModalTitle">Trigger Cluster Scale-up</h5>
153
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close">
154
+ <span aria-hidden="true">&times;</span>
155
+ </button>
156
+ </div>
157
+ <div class="modal-body in-flow-invalid-msg">
158
+ <fieldset id="clm-scaleUpForm">
159
+ <div class="form-row">
160
+ <div class="form-group">
161
+ <div class="col-form-label form-label-container">
162
+ <label for="clm-numNodesNS" class="form-label">Number of nodes</label>
163
+ </div>
164
+ <div class="inner-widget">
165
+ <input id="clm-numNodesNS" class="form-control" name="numNodes" value="1" required data-required-msg="Required">
166
+ <span class="k-invalid-msg" data-for="numNodes"></span>
167
+ </div>
168
+ </div>
169
+ </div>
170
+ </fieldset>
171
+ </div>
172
+ <div class="modal-footer flex-column">
173
+ <div class="d-flex w-100">
174
+ <div class="flex-grow-1 text-left">
175
+ <button id="clm-scaleUpModalBt" type="button" class="k-button k-primary"><i class="fas fa-angle-double-up mr-1"></i>Scale-up</button>
176
+ </div>
177
+ <div class="flex-grow-1 text-right">
178
+ <button type="button" class="k-button k-secondary" data-dismiss="modal">Cancel</button>
179
+ </div>
180
+ </div>
181
+ </div>
182
+ </div>
183
+ </div>
184
+ </div>
185
+ </cluster-monitor-module>
@@ -0,0 +1,47 @@
1
+ <cluster-updater-module class="module" id="cluster-updater-module">
2
+ <style>
3
+ #cup-progressBar {
4
+ width: 100%;
5
+ }
6
+ </style>
7
+
8
+ <view-stack id="cup-viewstack" class="flex-grow-1">
9
+ <div id="cup-loading" class="position-relative">
10
+ <div class="float-centered-loading">
11
+ Requesting data...
12
+ <div id="cup-progressBar"></div>
13
+ </div>
14
+ </div>
15
+ <div id="cup-error" class="position-relative">
16
+ <div class="float-centered-text w-50">
17
+ <div class="mb-3">The following error occurred while trying to connect to Overcast. Try again and, if the error persists, please report the issue to the SmartFoxServer team.</div>
18
+ <div class="mb-3"><strong id="cup-error1Msg"></strong></div>
19
+ <button id="cup-retryBt" type="button" class="k-button k-primary"><i class="fas fa-redo-alt mr-1"></i>Retry</button>
20
+ </div>
21
+ </div>
22
+ <div id="cup-none" class="position-relative">
23
+ <div class="float-centered-text w-50">This node is already running the latest SmartFoxServer version.</div>
24
+ </div>
25
+ <div id="cup-main" class="p-3">
26
+ <div class="row no-gutters">
27
+ <div class="col-md-6 light-box p-3">
28
+ <p class="h5">Installed server version: <strong id="cup-currentVer"></strong></p>
29
+ <p class="h5">Available server version: <strong id="cup-updateVer"></strong> <span id="cup-criticalUpd" class="badge badge-danger">CRITICAL</span></p>
30
+ <p class="h6" id="cup-includedVer"></p>
31
+ <hr>
32
+ <p class="text-muted"><strong>NOTE</strong>: the update will be installed immediately upon confirmation and a server restart will be triggered at then of the process, closing the current session as well.</p>
33
+ <hr>
34
+ <div class="my-3">
35
+ <button id="cup-updateBt" type="button" class="k-button k-primary mr-2"><i class="fas fa-download mr-1"></i>Update</button>
36
+ <button id="cup-refreshBt" type="button" class="k-button k-secondary">&nbsp;<i class="fas fa-redo-alt mr-1"></i>&nbsp;</button>
37
+ </div>
38
+ <p id="cup-error2Msg" class="text-danger"></p>
39
+ </div>
40
+ <div class="col-md-6 dark-box p-3">
41
+ <p class="h5">Release notes</p>
42
+ <div id="cup-releaseNotes"></div>
43
+ </div>
44
+ </div>
45
+ </div>
46
+ </view-stack>
47
+ </cluster-updater-module>
@@ -0,0 +1,84 @@
1
+ <extension-deployer-module class="module" id="extension-deployer-module">
2
+ <style>
3
+ .exd-progressBar {
4
+ width: 100%;
5
+ }
6
+
7
+ button.k-clear-selected, button.k-upload-selected {
8
+ display: none !important;
9
+ }
10
+ </style>
11
+
12
+ <view-stack id="exd-viewstack" class="flex-grow-1">
13
+ <div id="exd-init" class="position-relative">
14
+ <div class="float-centered-loading">
15
+ Initializing, please wait...
16
+ <div class="exd-progressBar"></div>
17
+ </div>
18
+ </div>
19
+ <div id="exd-locked" class="position-relative">
20
+ <div class="float-centered-text w-75">
21
+ <div class="my-3">This module is currently locked as an additional security measure.<br>Please access the server and delete the <strong>/config/UploadsLock.txt</strong> file before retrying.</div>
22
+ <button id="exd-retryBt" type="button" class="k-button k-primary" title="Retry"><i class="fas fa-sync-alt mr-1"></i>Retry</button>
23
+ </div>
24
+ </div>
25
+ <div id="exd-main" class="p-3">
26
+ <p>This module is in charge of distributing Extensions to game nodes in the cluster. If you need to deploy an Extension to the lobby node too, please go to the <strong>Extension Manager</strong> module.</p>
27
+ <p><strong>Important</strong>: before deploying an Extension to the running game nodes in the cluster (listed below), remember to update the game node snapshot in Overcast. This is important to avoid new nodes to be launched automatically by the scaling logic with an outdated version of the Extension.</p>
28
+ <div class="row">
29
+ <div class="col-md-7 col-lg-6 col-xl-8">
30
+ <div id="exd-nodesList"></div>
31
+ <div class="d-flex justify-content-between my-3">
32
+ <span>&nbsp;</span>
33
+ <button id="exd-refreshBt" type="button" class="btn btn-secondary btn-sm" title="Refresh now"><i class="fas fa-sync-alt"></i></button>
34
+ </div>
35
+ </div>
36
+ <div class="col-md-5 col-mlg-6 col-xl-4">
37
+ <fieldset id="exd-uploadFileForm" class="form-group dark-box p-3">
38
+ <h6 class="form-label">Deploy Extension to selected nodes</h6>
39
+ <hr>
40
+ <div class="inner-widget">
41
+ <input type="file" id="exd-uploader" name="uploader" accept=".zip" data-upload-msg="Select one or more files">
42
+ <span class="k-invalid-msg position-static" data-for="exd-uploader"></span>
43
+ </div>
44
+ <div class="inner-widget mt-3">
45
+ <input type="checkbox" id="exd-modeCb" data-role="switch" checked />
46
+ <label for="exd-modeCb">Non-destructive deployment <i class="fas fa-question-circle text-muted help" title="In destructive deployment, all folders under <strong>/extensions</strong> on the game node which are also found in the uploaded zip file are deleted before uncompressing the new version; in non-destructive deployment, files from the uploaded zip are simply added to the respective folders (overwriting existing files with the same name)"></i></label>
47
+ </div>
48
+ <button id="exd-deployBt" type="button" class="k-button k-primary mt-2"><i class="fas fa-file-upload mr-1"></i>Deploy</button>
49
+ </fieldset>
50
+ </div>
51
+ </div>
52
+ </div>
53
+ </view-stack>
54
+
55
+ <div class="modal" id="exd-deployStatusModal" tabindex="-1" role="dialog" aria-labelledby="exd-deployStatusModalTitle" aria-hidden="true">
56
+ <div class="modal-dialog modal-dialog-centered" role="document">
57
+ <div class="modal-content">
58
+ <div class="modal-body">
59
+ <view-stack id="exd-deployStatus">
60
+ <div id="exd-statusProgress">
61
+ <div class="exd-progressBar"></div>
62
+ <div class="mt-3">Deployment in progress, please wait...</div>
63
+ </div>
64
+ <div id="exd-statusError">
65
+ <h4 class="text-danger">Deployment error</h4>
66
+ <p id="exd-statusErrorText"></p>
67
+ <button type="button" class="k-button k-secondary exd-statusCloseBt">Close</button>
68
+ </div>
69
+ <div id="exd-statusWarning">
70
+ <h4 class="text-warning">Deployment warning</h4>
71
+ <p id="exd-statusWarningText"></p>
72
+ <button type="button" class="k-button k-secondary exd-statusCloseBt">Close</button>
73
+ </div>
74
+ <div id="exd-statusSuccess">
75
+ <h4 class="text-success">Deployment success</h4>
76
+ <p>The uploaded file was successfully transferred to all game nodes.</p>
77
+ <button type="button" class="k-button k-secondary exd-statusCloseBt">Close</button>
78
+ </div>
79
+ </view-stack>
80
+ </div>
81
+ </div>
82
+ </div>
83
+ </div>
84
+ </extension-deployer-module>
@@ -248,16 +248,18 @@
248
248
  <hr/>
249
249
  <div class="custom-tab-content">
250
250
  <label class="config-form-separator-label mb-3 font-weight-bold">Kick User</label>
251
- <div>Force user disconnection by kicking him/her; a message can be sent to the user to describe the reason of the action.</div>
251
+ <div>Force user disconnection by kicking them; a message can be sent to the user to describe the reason of the action.</div>
252
252
  <div class="row no-gutters my-2">
253
253
  <div class="col-lg pr-lg-2">
254
254
  <input id="znm-kickMsgIn" class="k-textbox form-control w-100 my-1" placeholder="Message"/>
255
255
  </div>
256
256
  <div class="col-lg-auto col-xl-6">
257
- <div class="d-inline-block" class="my-1">
257
+ <div class="d-inline-block my-1">
258
258
  <input id="znm-kickDelayNS" class="form-control" style="max-width: 130px"/>
259
259
  </div>
260
- <button id="znm-kickBt" type="button" class="k-button k-primary my-1 ml-1"><i class="fas fa-bolt mr-1"></i>Kick</button>
260
+ </div>
261
+ <div class="col-12 my-1">
262
+ <button id="znm-kickBt" type="button" class="k-button k-primary"><i class="fas fa-bolt mr-1"></i>Kick</button>
261
263
  </div>
262
264
  </div>
263
265
  <div class="text-muted">Kicked users can reconnect immediately.</div>
@@ -265,18 +267,21 @@
265
267
  <hr/>
266
268
  <div class="custom-tab-content">
267
269
  <label class="config-form-separator-label mb-3 font-weight-bold">Ban User</label>
268
- <div>Force user disconnection by banning his/her username (default) or IP address; a message can be sent to the user to describe the reason of the action.</div>
270
+ <div>Force user disconnection by banning their username (default) or IP address; a message can be sent to the user to explain the action taken and a reason can be saved for future reference (see Ban Manager module).</div>
269
271
  <div class="row no-gutters my-2">
270
- <div class="col-lg pr-lg-2">
272
+ <div class="col-lg-6 col-xl pr-lg-2">
271
273
  <input id="znm-banMsgIn" class="k-textbox form-control w-100 my-1" placeholder="Message"/>
272
274
  </div>
273
- <div class="d-inline-flex col-lg-auto pr-xl-2">
275
+ <div class="col-lg-6 col-xl pr-xl-2">
276
+ <input id="znm-banRsnIn" class="k-textbox form-control w-100 my-1" placeholder="Reason"/>
277
+ </div>
278
+ <div class="d-inline-flex col-sm-auto pr-sm-2">
274
279
  <input id="znm-banModeDD" class="form-control my-1" style="width: 90px"/>
275
280
  <div class="d-inline-block my-1 ml-2">
276
281
  <input id="znm-banDelayNS" class="form-control" style="max-width: 130px"/>
277
282
  </div>
278
283
  </div>
279
- <div class="d-inline-flex col-xl-auto">
284
+ <div class="d-inline-flex col-sm-auto">
280
285
  <div class="d-inline-block my-1">
281
286
  <input id="znm-banDurationNS" class="form-control" style="max-width: 130px"/>
282
287
  </div>
@@ -285,7 +290,9 @@
285
290
  <option value="hours">hours</option>
286
291
  <option value="days" selected>days</option>
287
292
  </select>
288
- <button id="znm-banBt" type="button" class="k-button k-primary my-1"><i class="fas fa-ban mr-1"></i>Ban</button>
293
+ </div>
294
+ <div class="col-12 my-1">
295
+ <button id="znm-banBt" type="button" class="k-button k-primary"><i class="fas fa-ban mr-1"></i>Ban</button>
289
296
  </div>
290
297
  </div>
291
298
  <div class="text-muted">Banned users can't reconnect until the ban duration time has passed (default: 1 day).</div>
@@ -7,12 +7,6 @@
7
7
  <meta http-equiv="description" content="Basic examples for SmartFoxServer, a massive multiplayer platform for building games, MMO communities, virtual worlds, realtime multiplayer games and a lot more..." />
8
8
  <meta name="copyright" content="gotoAndPlay()" />
9
9
  <meta name="language" content="English" />
10
- <meta name="author" content="
11
- GotoAndPlay S.N.C.
12
- Via IV Novembre, 8
13
- 12045 Fossano (CN)
14
- Italy
15
- Copyright (C) gotoAndPlay()" />
16
10
 
17
11
  <link rel="icon" href="../_images_/favicon.png" />
18
12
 
@@ -32,31 +26,27 @@
32
26
  <div id="text">
33
27
  <p><strong>SmartFoxServer 2X</strong> was installed successfully and is now up and running!</p>
34
28
  <p>Before proceeding, please make sure you are using the <strong>latest version</strong> by visiting the <a href="http://www.smartfoxserver.com/download/sfs2x#p=updates" target="_blank">updates section</a> of the SmartFoxServer website.</p>
35
- <h2>Administration</h2>
29
+ <h2>&raquo; Administration</h2>
36
30
  <p>Launch the <a href="admin/">Administration Tool 2X</a> (default username &amp; password: <em>sfsadmin</em>).</p>
37
- <h2>Documentation</h2>
31
+ <div class="note">
32
+ <strong>PLEASE NOTE: </strong> if you are installing SFS2X on a public server, make sure to immediately change the default Admin credentials using a secure password. To do so, login in the AdminTool, select Server Settings > Remote Admin > and apply the changes. Then restart SmartFoxServer.
33
+ </div>
34
+ <h2>&raquo; Documentation</h2>
38
35
  <p>Visit the <a href="http://www.smartfoxserver.com/support/sfs2x" target="_blank">SmartFoxServer 2X online documentation</a>.</p>
39
- <h2>Examples</h2>
40
- <h3>Basic package</h3>
41
- <p>The basic examples package allows you to rapidly put SmartFoxServer 2X in action.<br />
42
- In order to install the examples follow these steps:</p>
43
- <ol>
44
- <li>download the <a href="http://www.smartfoxserver.com/download/get/120">Basic examples package</a></li>
45
- <li>unzip the content in the <em>[SFS2X_install_folder]SFS2X/www/root/examples</em> folder, overwriting the existing file</li>
46
- </ol>
47
- <p>After completing the installation, visit the <a href="examples/">examples main page</a>.</p>
48
- <p class="note"><strong>IMPORTANT</strong>: SmartFoxServer 2X is by default distributed with a predefined Zone used by the basic examples, and a server-side extension used by the Tris game. If you want to keep your installation clean (usually for production environments) you should delete the content of the
49
- <strong>[SFS2X_install_folder]SFS2X/extensions</strong> and <strong>zones</strong> folders before installing your own Zone/s and Extension/s. </p>
50
- <h3>Full packages</h3>
51
- <p>The full examples packages for all supported platforms can be downloaded from the SmartFoxServer website's <a href="http://www.smartfoxserver.com/download/sfs2x#p=examples" target="_blank">download page</a>. A complete set of tutorials with detailed deployment instructions for each example is also available in the dedicated sections of the <a href="http://www.smartfoxserver.com/support/sfs2x">online documentation</a>.</p>
52
- <p>&nbsp;</p>
36
+
37
+ <h2>&raquo; Examples</h2>
38
+ <p>We provide <strong>examples packages</strong> for all supported platforms that can be downloaded from our website's <a href="http://www.smartfoxserver.com/download/sfs2x#p=examples" target="_blank">download section</a>. A complete set of tutorials with detailed deployment instructions for each example is also available in the dedicated sections of the <a href="http://www.smartfoxserver.com/support/sfs2x" target="_blank">online documentation</a>.</p>
39
+
40
+ <h2>&raquo; Support</h2>
41
+ Join our <a href="https://www.smartfoxserver.com/forums/index.php" target="_blank">support forum</a> where you can post your requests, submit bug reports and search a vast archive with tens of thousands of topics.
53
42
  <p>&nbsp;</p>
43
+ <p>&nbsp;</p>
54
44
  </div>
55
45
  </div> <!-- /main -->
56
46
  </div> <!-- /wrapper1 -->
57
47
  </div> <!-- /wrapper2 -->
58
48
  <div id="footer">
59
- <p id="copyright">Copyright &copy; gotoAndPlay() 2004-2016. All rights reserved<br />
49
+ <p id="copyright">Copyright &copy; gotoAndPlay(). All rights reserved<br />
60
50
  <a href="http://www.smartfoxserver.com/" target="_blank">www.smartfoxserver.com</a></p>
61
51
  </div> <!-- /footer -->
62
52
  </body>
@@ -16,9 +16,9 @@
16
16
  limitations under the License.
17
17
  -->
18
18
  <Context antiResourceLocking="false" privileged="true" >
19
- <!--
19
+ <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
20
+ sameSiteCookies="strict" />
20
21
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
21
22
  allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
22
- -->
23
23
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
24
24
  </Context>
@@ -14,7 +14,7 @@
14
14
  See the License for the specific language governing permissions and
15
15
  limitations under the License.
16
16
  --%>
17
- <%@ page import="org.apache.catalina.util.RequestUtil" session="false"
17
+ <%@ page import="org.apache.tomcat.util.security.Escape" session="false"
18
18
  trimDirectiveWhitespaces="true" %>
19
19
  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
20
20
  <html>
@@ -33,7 +33,7 @@
33
33
  <h1>404 Not found</h1>
34
34
  <p>
35
35
  The page you tried to access
36
- (<%=RequestUtil.filter((String) request.getAttribute(
36
+ (<%=Escape.htmlElementContent((String) request.getAttribute(
37
37
  "javax.servlet.error.request_uri"))%>)
38
38
  does not exist.
39
39
  </p>
@@ -22,5 +22,9 @@
22
22
  -->
23
23
  <Context docBase="${catalina.home}/webapps/manager"
24
24
  privileged="true" antiResourceLocking="false" >
25
-
25
+ <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
26
+ sameSiteCookies="strict" />
27
+ <Valve className="org.apache.catalina.valves.RemoteAddrValve"
28
+ allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
29
+ <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
26
30
  </Context>
@@ -56,11 +56,28 @@
56
56
  </init-param>
57
57
  </filter>
58
58
 
59
+ <!-- Configured to set X-FRAME-OPTIONS. Disable HSTS in case it interferes -->
60
+ <!-- with an existing setting. Keep X-Content-Type-Options and -->
61
+ <!-- X-XSS-Protection as they are page specific. -->
62
+ <filter>
63
+ <filter-name>HTTP header security filter</filter-name>
64
+ <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
65
+ <init-param>
66
+ <param-name>hstsEnabled</param-name>
67
+ <param-value>false</param-value>
68
+ </init-param>
69
+ </filter>
70
+
59
71
  <filter-mapping>
60
72
  <filter-name>CSRF</filter-name>
61
73
  <servlet-name>HTMLHostManager</servlet-name>
62
74
  </filter-mapping>
63
75
 
76
+ <filter-mapping>
77
+ <filter-name>HTTP header security filter</filter-name>
78
+ <url-pattern>/*</url-pattern>
79
+ </filter-mapping>
80
+
64
81
  <!-- Define the Manager Servlet Mapping -->
65
82
  <servlet-mapping>
66
83
  <servlet-name>HostManager</servlet-name>