Java 17 OpenJDK¶
L’image Java 17 OpenJDK est la solution de référence Reemo pour exécuter et
diffuser à distance des applications Java, y compris les applications
Java Web Start (JNLP). Elle embarque Eclipse Temurin 17 (OpenJDK), une
distribution 100 % open source, et le lanceur OpenWebStart pour les fichiers
.jnlp. Aucune licence Oracle n’est nécessaire.
Depuis la version 2.0.0, l’image repose sur la même base que le Bastion HTTPS et en reprend le navigateur verrouillé (ungoogled-Chromium), qui remplace Firefox. Elle se configure donc avec les mêmes champs de déploiement.
Template¶
Ce gabarit est importable depuis la page Images de l’interface d’administration. Reportez-vous à la section Import et export d’images pour la procédure d’importation et de mise à jour.
{
"name": "Java17openjdk",
"type": "IMAGE",
"comments": "",
"reference": "registry.reemo.io/reemosbjava17openjdk",
"icon": "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<svg width=\"100%\" height=\"100%\" viewBox=\"0 0 725 140\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:space=\"preserve\" xmlns:serif=\"http://www.serif.com/\" style=\"fill-rule:evenodd;clip-rule:evenodd;\">\n <g transform=\"matrix(1,0,0,1,-0.00001,-0)\">\n <g id=\"Image\" transform=\"matrix(0.202775,0,0,0.202775,81.655131,28.777587)\">\n <g id=\"text170\">\n <path id=\"path173\" d=\"M-39.489,123.681C-39.489,227.681 -57.622,301.814 -93.889,346.081C-129.622,390.348 -173.355,412.481 -225.089,412.481C-280.555,412.481 -324.022,390.614 -355.489,346.881C-386.955,302.614 -402.689,233.281 -402.689,138.881C-402.689,47.148 -385.622,-22.452 -351.489,-69.919C-316.822,-117.919 -272.022,-141.919 -217.089,-141.919C-162.689,-141.919 -119.489,-119.786 -87.489,-75.519C-55.489,-31.252 -39.489,35.148 -39.489,123.681ZM-334.689,123.681C-334.689,202.081 -324.555,260.748 -304.289,299.681C-284.022,338.081 -255.489,357.281 -218.689,357.281C-184.555,357.281 -157.622,339.148 -137.889,302.881C-117.622,266.081 -107.489,211.414 -107.489,138.881C-107.489,65.281 -118.155,9.281 -139.489,-29.119C-160.289,-68.052 -189.089,-87.519 -225.889,-87.519C-257.355,-87.519 -283.489,-69.119 -304.289,-32.319C-324.555,4.481 -334.689,56.481 -334.689,123.681Z\" style=\"fill:rgb(231,111,0);fill-rule:nonzero;\"/>\n <path id=\"path175\" d=\"M41.262,542.881L41.262,7.681L90.862,7.681L96.462,50.081C113.528,36.214 130.595,24.748 147.662,15.681C165.262,6.614 181.528,2.081 196.462,2.081C229.528,2.081 256.462,18.881 277.262,52.481C298.595,85.548 309.262,129.281 309.262,183.681C309.262,251.948 294.595,306.881 265.262,348.481C236.462,390.081 195.128,410.881 141.262,410.881L123.662,410.881C113.528,409.281 106.062,408.214 101.262,407.681L101.262,542.881L41.262,542.881ZM150.062,365.281C180.995,365.281 204.728,350.614 221.262,321.281C238.328,291.948 246.862,253.014 246.862,204.481C246.862,158.614 240.195,121.814 226.862,94.081C213.528,65.814 195.928,51.681 174.062,51.681C163.928,51.681 152.462,55.948 139.662,64.481C126.862,73.014 114.062,83.681 101.262,96.481L101.262,354.081C109.262,357.814 117.262,360.748 125.262,362.881C133.795,364.481 142.062,365.281 150.062,365.281Z\" style=\"fill:rgb(231,111,0);fill-rule:nonzero;\"/>\n <path id=\"path177\" d=\"M430.012,214.081L430.012,225.281C430.012,270.614 438.012,304.481 454.012,326.881C470.012,348.748 491.878,359.681 519.612,359.681C537.212,359.681 554.278,357.814 570.812,354.081C587.345,349.814 603.078,344.481 618.012,338.081L629.212,374.081C608.945,385.814 588.145,394.881 566.812,401.281C546.012,407.681 524.678,410.881 502.812,410.881C458.012,410.881 424.145,395.414 401.212,364.481C378.278,333.014 366.812,283.948 366.812,217.281C366.812,147.948 378.812,94.881 402.812,58.081C426.812,21.281 461.212,2.881 506.012,2.881C548.678,2.881 579.878,19.148 599.612,51.681C619.878,83.681 630.012,137.814 630.012,214.081L430.012,214.081ZM570.812,152.481C570.812,119.948 565.212,94.081 554.012,74.881C542.812,55.681 525.478,46.081 502.012,46.081C480.678,46.081 463.345,58.081 450.012,82.081C436.678,105.548 430.012,135.148 430.012,170.881L570.812,170.881L570.812,152.481Z\" style=\"fill:rgb(231,111,0);fill-rule:nonzero;\"/>\n <path id=\"path179\" d=\"M768.362,7.681L773.962,50.881C789.962,37.548 807.562,26.081 826.762,16.481C845.962,6.881 863.296,2.081 878.762,2.081C911.296,2.081 936.096,15.414 953.162,42.081C970.229,68.214 978.762,113.014 978.762,176.481L976.362,404.481L916.362,404.481L917.962,192.481C917.962,140.748 913.162,104.214 903.562,82.881C893.962,61.548 878.762,50.881 857.962,50.881C845.696,50.881 832.629,55.414 818.762,64.481C804.896,73.548 791.562,84.214 778.762,96.481L778.762,404.481L718.762,404.481L718.762,7.681L768.362,7.681Z\" style=\"fill:rgb(231,111,0);fill-rule:nonzero;\"/>\n </g>\n <g id=\"text380\">\n <path id=\"path286\" d=\"M1070.661,542.881L1020.261,498.081C1037.328,476.748 1048.794,452.748 1054.661,426.081C1060.528,399.414 1063.461,367.948 1063.461,331.681L1063.461,-135.519L1171.461,-135.519L1171.461,351.681C1171.461,394.348 1163.461,431.681 1147.461,463.681C1131.994,495.681 1106.394,522.081 1070.661,542.881Z\" style=\"fill:rgb(83,130,161);fill-rule:nonzero;stroke:black;stroke-opacity:0;stroke-width:1px;\"/>\n <path id=\"path288\" d=\"M1396.071,407.681C1382.204,407.681 1359.004,407.148 1326.471,406.081C1294.471,405.014 1277.404,404.481 1275.271,404.481L1275.271,-135.519L1419.271,-137.119C1500.337,-137.119 1560.604,-114.452 1600.071,-69.119C1640.071,-23.786 1660.071,38.348 1660.071,117.281C1660.071,211.681 1638.471,283.681 1595.271,333.281C1552.071,382.881 1485.671,407.681 1396.071,407.681ZM1409.671,-45.919L1383.271,-45.919L1383.271,314.081L1415.271,315.681C1456.871,315.681 1488.604,301.014 1510.471,271.681C1532.871,242.348 1544.071,194.614 1544.071,128.481C1544.071,71.414 1533.671,28.214 1512.871,-1.119C1492.071,-30.986 1457.671,-45.919 1409.671,-45.919Z\" style=\"fill:rgb(83,130,161);fill-rule:nonzero;stroke:black;stroke-opacity:0;stroke-width:1px;\"/>\n <path id=\"path290\" d=\"M1987.88,404.481L1848.68,158.081L1848.68,404.481L1740.68,404.481L1740.68,-135.519L1848.68,-135.519L1848.68,90.881L1989.48,-135.519L2112.68,-135.519L1936.68,105.281L2122.28,404.481L1987.88,404.481Z\" style=\"fill:rgb(83,130,161);fill-rule:nonzero;stroke:black;stroke-opacity:0;stroke-width:1px;\"/>\n </g>\n </g>\n </g>\n<g transform=\"translate(521,-3) scale(0.82)\"><path d=\"M 29.921875,127.91992 H 58.144531 V 47.817383 L 29.174805,53.793945 V 32.045898 L 57.978516,26.069336 H 88.359375 V 127.91992 H 116.58203 V 150 H 29.921875 Z\" style=\"fill:rgb(231,111,0);fill-rule:nonzero;\"/><path d=\"m 139.6582,26.069336 h 93.38379 V 44.082031 L 184.73145,150 H 153.60352 L 199.34082,49.560547 H 139.6582 Z\" style=\"fill:rgb(231,111,0);fill-rule:nonzero;\"/></g>\n</svg>",
"config": [
{
"conditionOp": "EQUAL",
"conditionVal": "allowlist",
"conditionVar": "REEMO_FILTER_LOGIC",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": true,
"hint": "Only these are reachable; everything else is blocked. Comma-separated. Accepts bare domains (reemo.io = that host only), wildcard subdomains (*.github.com), full URLs with a path prefix (https://site.com/app), or URL globs (*://*.cdn.net/*).",
"name": "Allowed Websites",
"placeholder": null,
"type": "STRING",
"uiPriority": 830,
"value": "",
"variable": "REEMO_ALLOWLIST",
"optional": false
},
{
"conditionOp": "EQUAL",
"conditionVal": "allowlist",
"conditionVar": "REEMO_FILTER_LOGIC",
"defaultValue": "false",
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": true,
"hint": "Lets a site download a file it builds in the browser itself (client-side CSV, PDF or ZIP exports). Those carry no host name, so no Allowed Websites entry can match them: without this, the export button appears to do nothing.",
"name": "Downloads generated by the page",
"placeholder": null,
"type": "SELECT",
"uiPriority": 825,
"value": "",
"variable": "REEMO_ALLOW_GENERATED_DOWNLOADS",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "Enabled",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 10,
"value": "true",
"variable": "REEMO_ALLOW_GENERATED_DOWNLOADS",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "Disabled",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 5,
"value": "false",
"variable": "REEMO_ALLOW_GENERATED_DOWNLOADS",
"optional": false
},
{
"conditionOp": "EQUAL",
"conditionVal": "blocklist",
"conditionVar": "REEMO_FILTER_LOGIC",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": true,
"hint": "These are blocked; everything else is allowed. Same formats as allowlist: bare domains, *.subdomain wildcards, full URLs with a path prefix, or URL globs.",
"name": "Blocked Websites",
"placeholder": null,
"type": "STRING",
"uiPriority": 820,
"value": "",
"variable": "REEMO_BLOCKLIST",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "Allowlist (deny by default)",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 10,
"value": "allowlist",
"variable": "REEMO_FILTER_LOGIC",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": "BLANK",
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": true,
"hint": "What a new tab shows.",
"name": "New Tab Page",
"placeholder": null,
"type": "SELECT",
"uiPriority": 900,
"value": "",
"variable": "REEMO_NEW_TAB",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "Reemo",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 50,
"value": "#896FFB",
"variable": "REEMO_BACKGROUND_COLOR",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "5",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 10,
"value": "5",
"variable": "REEMO_LIMIT_MONITOR",
"optional": false
},
{
"conditionOp": "EQUAL",
"conditionVal": "external",
"conditionVar": "REEMO_PROXY_MODE",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": true,
"hint": "All browser traffic is routed through this upstream proxy, as host:port (e.g. proxy.corp.local:3128).",
"name": "Upstream Proxy (host:port)",
"placeholder": null,
"type": "STRING",
"uiPriority": 810,
"value": "",
"variable": "REEMO_EXTERNAL_PROXY",
"optional": false
},
{
"conditionOp": "EQUAL",
"conditionVal": "custom",
"conditionVar": "REEMO_NEW_TAB",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": true,
"hint": "URL opened on each new tab.",
"name": "New Tab URL",
"placeholder": null,
"type": "STRING",
"uiPriority": 890,
"value": "",
"variable": "REEMO_NEW_TAB_URL",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "2",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 40,
"value": "2",
"variable": "REEMO_LIMIT_MONITOR",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "1",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 50,
"value": "1",
"variable": "REEMO_LIMIT_MONITOR",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "Direct connection (no proxy)",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 5,
"value": "direct",
"variable": "REEMO_PROXY_MODE",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "Navy",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 30,
"value": "#0a3d62",
"variable": "REEMO_BACKGROUND_COLOR",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "External proxy (upstream)",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 15,
"value": "external",
"variable": "REEMO_PROXY_MODE",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "Dark",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 5,
"value": "#1e1e1e",
"variable": "REEMO_BACKGROUND_COLOR",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "URL filtering (allow / block websites)",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 10,
"value": "filter",
"variable": "REEMO_PROXY_MODE",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": "direct",
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": true,
"hint": "How the browser reaches the web. Direct: no proxy. URL filtering: route through a local proxy that allows or blocks websites. External proxy: route all traffic through an upstream proxy.",
"name": "Proxy Mode",
"placeholder": null,
"type": "SELECT",
"uiPriority": 850,
"value": "",
"variable": "REEMO_PROXY_MODE",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "Custom URL",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 20,
"value": "custom",
"variable": "REEMO_NEW_TAB",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "4",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 20,
"value": "4",
"variable": "REEMO_LIMIT_MONITOR",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "Blank page",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 10,
"value": "BLANK",
"variable": "REEMO_NEW_TAB",
"optional": false
},
{
"conditionOp": "EQUAL",
"conditionVal": "url",
"conditionVar": "REEMO_HOME_MODE",
"defaultValue": "https://reemo.io",
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": true,
"hint": "Page loaded when the session starts.",
"name": "Start URL / Homepage",
"placeholder": null,
"type": "STRING",
"uiPriority": 1000,
"value": "",
"variable": "REEMO_HOME",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "Black",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 20,
"value": "#000000",
"variable": "REEMO_BACKGROUND_COLOR",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "Blocklist (allow by default)",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 5,
"value": "blocklist",
"variable": "REEMO_FILTER_LOGIC",
"optional": false
},
{
"conditionOp": "EQUAL",
"conditionVal": "filter",
"conditionVar": "REEMO_PROXY_MODE",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": true,
"hint": "Allowlist: block everything except the listed websites. Blocklist: allow everything except the listed websites.",
"name": "Filtering Logic",
"placeholder": null,
"type": "SELECT",
"uiPriority": 840,
"value": "",
"variable": "REEMO_FILTER_LOGIC",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": "Bookmarks",
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": true,
"hint": "Name of the bookmarks folder shown in the bar.",
"name": "Bookmarks Folder Name",
"placeholder": null,
"type": "STRING",
"uiPriority": 520,
"value": "",
"variable": "REEMO_BOOKMARKS_NAME",
"optional": true
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": "#896FFB",
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": true,
"hint": null,
"name": "Background Color",
"placeholder": null,
"type": "SELECT",
"uiPriority": 490,
"value": "",
"variable": "REEMO_BACKGROUND_COLOR",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "White",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 30,
"value": "#ffffff",
"variable": "REEMO_BACKGROUND_COLOR",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": true,
"hint": "Bookmarks as Name|URL pairs, comma-separated (e.g. Reemo|https://reemo.io,Docs|https://docs.reemo.io).",
"name": "Bookmarks",
"placeholder": null,
"type": "STRING",
"uiPriority": 510,
"value": "",
"variable": "REEMO_BOOKMARKS",
"optional": true
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": "5",
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": true,
"hint": null,
"name": "Monitor Limit",
"placeholder": null,
"type": "SELECT",
"uiPriority": 480,
"value": "",
"variable": "REEMO_LIMIT_MONITOR",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "3",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 30,
"value": "3",
"variable": "REEMO_LIMIT_MONITOR",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": "false",
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": true,
"hint": "Allows the browser to resolve and display URLs using the local file:// protocol.",
"name": "Local file navigation (file://)",
"placeholder": null,
"type": "SELECT",
"uiPriority": 805,
"value": "",
"variable": "REEMO_ALLOW_FILE_PROTOCOL",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "Enabled",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 10,
"value": "true",
"variable": "REEMO_ALLOW_FILE_PROTOCOL",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "Disabled",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 5,
"value": "false",
"variable": "REEMO_ALLOW_FILE_PROTOCOL",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": "fr",
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": true,
"hint": "Keyboard layout for the session.",
"name": "Keyboard",
"placeholder": null,
"type": "SELECT",
"uiPriority": 470,
"value": "",
"variable": "REEMO_KEYMAP",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "English",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 30,
"value": "us",
"variable": "REEMO_KEYMAP",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "French",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 20,
"value": "fr",
"variable": "REEMO_KEYMAP",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "Sweden",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 10,
"value": "sv",
"variable": "REEMO_KEYMAP",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": "Europe/Paris",
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": true,
"hint": "Time zone for the session.",
"name": "Timezone",
"placeholder": null,
"type": "SELECT",
"uiPriority": 460,
"value": "",
"variable": "REEMO_TIMEZONE",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "Europe/Paris",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 30,
"value": "Europe/Paris",
"variable": "REEMO_TIMEZONE",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "Europe/London",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 20,
"value": "Europe/London",
"variable": "REEMO_TIMEZONE",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "Europe/Stockholm",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 10,
"value": "Europe/Stockholm",
"variable": "REEMO_TIMEZONE",
"optional": false
},
{
"conditionOp": "EQUAL",
"conditionVal": "html",
"conditionVar": "REEMO_HOME_MODE",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": true,
"hint": "Paste raw HTML to use as the session start page. The page is served locally and hardened: scripts and remote resources are disabled, so images must be inlined as data: URIs. Keep it under ~128 KB.",
"name": "Custom Homepage (HTML)",
"placeholder": null,
"type": "TEXT",
"uiPriority": 995,
"value": "",
"variable": "REEMO_CUSTOM_HTML",
"optional": true
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "Same as start page",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 15,
"value": "CUSTOM_HTML",
"variable": "REEMO_NEW_TAB",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": "url",
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": true,
"hint": "What the session opens on. URL: a normal web address. Custom HTML page: paste your own HTML below.",
"name": "Start Page",
"placeholder": null,
"type": "SELECT",
"uiPriority": 1010,
"value": "",
"variable": "REEMO_HOME_MODE",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "URL",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 20,
"value": "url",
"variable": "REEMO_HOME_MODE",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": false,
"hint": null,
"name": "Custom HTML page",
"placeholder": null,
"type": "SELECT_OPTION",
"uiPriority": 10,
"value": "html",
"variable": "REEMO_HOME_MODE",
"optional": false
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": true,
"hint": "Certificate authority to trust, in PEM format (-----BEGIN CERTIFICATE-----). For internal sites signed by your own CA, or an upstream proxy that inspects TLS. Paste the whole chain if there are several. Convert DER/PFX first.",
"name": "CA Certificate",
"placeholder": null,
"type": "TEXT",
"uiPriority": 800,
"value": "",
"variable": "REEMO_CERT",
"optional": true
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": true,
"hint": "Client certificate presented to sites that require one (mTLS), in PEM format. RSA or EC. Needs the matching private key below.",
"name": "User Certificate",
"placeholder": null,
"type": "TEXT",
"uiPriority": 790,
"value": "",
"variable": "REEMO_USER_CERT",
"optional": true
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null,
"editable": true,
"hint": "Private key matching the client certificate above, in PEM format and unencrypted (no passphrase).",
"name": "User Key",
"placeholder": null,
"type": "TEXT",
"uiPriority": 780,
"value": "",
"variable": "REEMO_USER_KEY",
"optional": true
},
{
"conditionOp": null,
"conditionVal": "",
"conditionVar": "",
"defaultValue": null,
"intMax": null,
"intMin": null,
"intStep": null,
"editable": true,
"hint": "Sites whose JNLP applications run without the security prompt (OpenWebStart exception list). Comma-separated full URLs, e.g. https://app.example.com,https://intranet.example.com:8443",
"name": "Java URL exception list",
"placeholder": "(,) separated. Example : https://reemo.io,https://reemo.fr",
"type": "STRING",
"uiPriority": 770,
"value": "",
"variable": "REEMO_JAVA_ALLOWLIST",
"optional": true,
"volumeName": null,
"volumeTarget": null,
"volumeStorageClass": null,
"volumeAccessMode": null,
"volumeMode": null,
"volumeRequestSize": null,
"volumeRequestSizeOverhead": null
}
],
"links": [],
"usePushNotifications": false,
"assignableToProvider": true,
"os": null,
"vmStartMode": null,
"vmCreationMode": null,
"vmCreationDate": null,
"vmPersistentDisk": null,
"official": false
}
Configuration et déploiement¶
Informations de l’image¶
Image :
registry.reemo.io/reemosbjava17openjdk:latest
Navigateur interne : ungoogled-Chromium
Java : Eclipse Temurin 17 (OpenJDK) et OpenWebStart
Champs communs avec le Bastion HTTPS¶
Le navigateur de cette image est celui du Bastion HTTPS. Les champs suivants fonctionnent donc exactement comme sur cette image. Reportez-vous à la page Bastion HTTPS pour le détail de chacun.
Champ |
Rôle |
|---|---|
Start Page, Start URL / Homepage, Custom Homepage (HTML) |
Page affichée à l’ouverture de la session, adresse web ou page HTML personnalisée. |
New Tab Page, New Tab URL |
Contenu d’un nouvel onglet. |
Proxy Mode, Filtering Logic, Allowed Websites, Blocked Websites, Upstream Proxy (host:port) |
Filtrage des sites accessibles, ou routage du trafic vers un proxy d’entreprise. |
Downloads generated by the page |
En mode liste d’autorisation, permet à un site autorisé de remettre un fichier qu’il construit lui-même (export CSV, PDF ou ZIP). |
Local file navigation (file://) |
Accès aux adresses |
Bookmarks, Bookmarks Folder Name |
Marque-pages imposés dans la barre du navigateur. |
Monitor Limit, Background Color, Keyboard, Timezone |
Réglages de la session. |
CA Certificate, User Certificate, User Key |
Autorité de certification personnalisée et certificat client (mTLS), au format PEM. |
Autoriser les applications Java Web Start¶
Le champ Java URL exception list est propre à cette image. Il liste les sites dont les applications JNLP s’exécutent sans l’invite de sécurité d’OpenWebStart.
Champ |
Description |
|---|---|
Java URL exception list |
URL complètes séparées par des virgules, par exemple
|
Important
Renseignez les adresses de toutes les sources que l’application JNLP
sollicite, et pas seulement celle du fichier .jnlp : serveurs applicatifs,
CDN et serveurs de certificats.
Note
Les adresses de ce champ ne remplacent pas le filtrage de navigation. Si la session filtre les sites, un site doit aussi être autorisé dans Allowed Websites pour que l’utilisateur puisse y accéder.
Guide d’utilisation¶
Ouvrir la session¶
À l’ouverture de la session Reemo, le navigateur démarre sur la page définie par Start Page. Aucune installation ni configuration n’est demandée à l’utilisateur.
Lancer une application Java¶
Un fichier Java téléchargé dans la session démarre sans invite de téléchargement et sans clic supplémentaire :
un fichier
.jars’exécute immédiatement avec Java 17 ;un fichier
.jnlpest transmis à OpenWebStart, qui l’exécute sur la machine virtuelle Java du conteneur.
Seuls les sites autorisés par le déploiement peuvent fournir ces fichiers.
Le reste de l’usage (fenêtres, saisie d’identifiants depuis le portail Reemo, transfert de fichiers) est identique à celui du Bastion HTTPS.
Contraintes de sécurité¶
Le navigateur est verrouillé en permanence, comme sur le Bastion HTTPS : pas d’accès à la configuration, pas d’outils de développement, extensions Reemo verrouillées.
Journalisation et traçabilité¶
Pour répondre aux exigences d’audit et de conformité, l’image centralise ses événements dans les flux standards du conteneur. Deux dimensions sont auditées en continu :
Navigation web : chaque requête émise par le navigateur (méthode et URL) est enregistrée, y compris pour les sites en HTTPS. Le filtrage et la journalisation sont assurés par le navigateur lui-même, sans déchiffrer le trafic. Chaque ligne porte l’identité de l’utilisateur Reemo à l’origine de la session.
Activité applicative (clics Java) : l’agent intégré à la machine virtuelle Java enregistre en direct chaque interaction graphique dans l’application (clics sur les boutons, onglets et menus), pour les fichiers
.jarcomme pour les applications JNLP. Par sécurité, les saisies de texte et les mots de passe sont strictement exclus de cet audit.
Les journaux sont directement exploitables par vos outils de centralisation.
Changelog¶
v2.0.0 (2026-11-06)¶
Changed
Built on the Reemo base image, with the HTTPS Bastion browser. The Java 17 image now starts from the shared Reemo desktop base and uses the same locked- down browser as the HTTPS Bastion (ungoogled-Chromium) instead of Firefox. The desktop, the screens, the keyboard, the time zone, the certificates and the log format are the ones every Reemo image shares; URL filtering, the custom start page, bookmarks, credential injection, the navigation audit and file transfer behave exactly as on the HTTPS Bastion and use its deployment fields. Java itself is unchanged: Eclipse Temurin 17 (OpenJDK), OpenWebStart for JNLP applications, and the in-application click audit.
Added
Downloaded Java applications start by themselves. A
.jardownloaded in the browser is run immediately with Java 17, and a.jnlpis handed to OpenWebStart, with no download prompt and no extra click — the same experience as.icafiles on the Citrix image. Only sites the deployment allows can provide them, and the click audit covers both kinds of application.
Removed
Firefox and the intercepting proxy. Navigation is now filtered and logged by the browser itself, without decrypting the traffic.
v1.0.0 (2026-06-19)¶
First public release of the Java 17 OpenJDK Reemo image.
Added
Open-source Java Web Start runtime. Eclipse Temurin 17 (OpenJDK) and OpenWebStart as the JNLP launcher — no Oracle production license required.
In-session activity audit. Clicks and activations inside JNLP applications are traced (component type, name and label) and forwarded to container logs. No keystrokes, text fields or passwords are ever captured, and no data is written to disk.
Navigation logging enabled by default: full HTTPS URLs are recorded through a transparent proxy.
Unified log format across all subsystems with per-line Reemo user attribution, making it straightforward to correlate events with a specific session.
Versions¶
Images published on registry.reemo.io/reemosbjava17openjdk.
Each build exposes these pullable tags:
Latest (
:latest) – the latest published releaseRelease (
:vX.Y.Z) – always tracks the latest build of this versionBuild (
:vX.Y.Z-N) – a specific, frozen weekly buildImage (
:<id>) – immutable reference to this exact build
Example: docker pull registry.reemo.io/reemosbjava17openjdk:vX.Y.Z-N
v2.0.0-1 (2026-11-09)