You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2021/05/16 05:27:07 UTC

svn commit: r1889921 [3/3] - in /karaf/site/production/manual/latest: ./ commands/

Modified: karaf/site/production/manual/latest/interceptor.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/latest/interceptor.html?rev=1889921&r1=1889920&r2=1889921&view=diff
==============================================================================
--- karaf/site/production/manual/latest/interceptor.html (original)
+++ karaf/site/production/manual/latest/interceptor.html Sun May 16 05:27:06 2021
@@ -684,7 +684,7 @@ if you put a binding on a class is it av
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2020-11-04 17:04:18 CET
+Last updated 2021-05-08 06:09:41 CEST
 </div>
 </div>
 </body>

Modified: karaf/site/production/manual/latest/karaf-maven-plugin.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/latest/karaf-maven-plugin.html?rev=1889921&r1=1889920&r2=1889921&view=diff
==============================================================================
--- karaf/site/production/manual/latest/karaf-maven-plugin.html (original)
+++ karaf/site/production/manual/latest/karaf-maven-plugin.html Sun May 16 05:27:06 2021
@@ -1933,7 +1933,7 @@ META-INF in the kar, without getting ins
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2020-11-04 17:04:18 CET
+Last updated 2021-05-08 06:09:41 CEST
 </div>
 </div>
 </body>

Modified: karaf/site/production/manual/latest/monitoring.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/latest/monitoring.html?rev=1889921&r1=1889920&r2=1889921&view=diff
==============================================================================
--- karaf/site/production/manual/latest/monitoring.html (original)
+++ karaf/site/production/manual/latest/monitoring.html Sun May 16 05:27:06 2021
@@ -554,23 +554,33 @@ table.CodeRay td.code>pre{padding:0}
 </div>
 </div>
 <div class="paragraph">
-<p>If you don&#8217;t need the remote JMX at all, users can remove</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre>-Dcom.sun.management.jmxremote</pre>
-</div>
-</div>
-<div class="paragraph">
-<p>from bin/karaf|bin/karaf.bat to avoid opening the RMI listening port.</p>
-</div>
-<div class="paragraph">
 <p>You have to provide an username and password to access the JMX layer.
 The JMX layer uses the security framework, and so, by default, it uses the users defined in <code>etc/users.properties</code>.</p>
 </div>
 <div class="paragraph">
 <p>You can change the port numbers of the JMX layer in the <code>etc/org.apache.karaf.management.cfg</code> configuration file.</p>
 </div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>For security reason, by default, <code>karaf</code> user is disabled. To allow the logon, you have to have an user. You can enable
+<code>karaf</code> user by uncommenting the user in <code>etc/users.properties</code>:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>karaf = karaf,_g_:admingroup
+_g_\:admingroup = group,admin,manager,viewer,systembundles,ssh</pre>
+</div>
+</div>
+</td>
+</tr>
+</table>
+</div>
 </div>
 <div class="sect3">
 <h4 id="_configuration">Configuration</h4>
@@ -971,7 +981,7 @@ Enter host password for user 'karaf':
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2020-11-04 17:04:18 CET
+Last updated 2021-05-08 06:09:41 CEST
 </div>
 </div>
 </body>

Modified: karaf/site/production/manual/latest/os-integration.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/latest/os-integration.html?rev=1889921&r1=1889920&r2=1889921&view=diff
==============================================================================
--- karaf/site/production/manual/latest/os-integration.html (original)
+++ karaf/site/production/manual/latest/os-integration.html Sun May 16 05:27:06 2021
@@ -936,10 +936,9 @@ wrapper.java.additional.1=-Dkaraf.home=%
 wrapper.java.additional.2=-Dkaraf.base=%KARAF_BASE%
 wrapper.java.additional.3=-Dkaraf.data=%KARAF_DATA%
 wrapper.java.additional.4=-Dkaraf.etc=%KARAF_ETC%
-wrapper.java.additional.5=-Dcom.sun.management.jmxremote
-wrapper.java.additional.6=-Dkaraf.startLocalConsole=false
-wrapper.java.additional.7=-Dkaraf.startRemoteShell=true
-wrapper.java.additional.8=-Djava.io.tmpdir=%KARAF_DATA%/tmp
+wrapper.java.additional.5=-Dkaraf.startLocalConsole=false
+wrapper.java.additional.6=-Dkaraf.startRemoteShell=true
+wrapper.java.additional.7=-Djava.io.tmpdir=%KARAF_DATA%/tmp
 # Uncomment if you need libraries on Java 8
 #wrapper.java.additional.9=-Djava.endorsed.dirs=%JAVA_HOME%/jre/lib/endorsed:%JAVA_HOME%/lib/endorsed:%KARAF_HOME%/lib/endorsed
 #wrapper.java.additional.10=-Djava.ext.dirs=%JAVA_HOME%/jre/lib/ext:%JAVA_HOME%/lib/ext:%KARAF_HOME%/lib/ext
@@ -1304,7 +1303,7 @@ C:\opt\apache-karaf-4\bin\contrib&gt; ka
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2020-11-04 17:04:18 CET
+Last updated 2021-04-04 07:19:06 CEST
 </div>
 </div>
 </body>

Modified: karaf/site/production/manual/latest/overview.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/latest/overview.html?rev=1889921&r1=1889920&r2=1889921&view=diff
==============================================================================
--- karaf/site/production/manual/latest/overview.html (original)
+++ karaf/site/production/manual/latest/overview.html Sun May 16 05:27:06 2021
@@ -606,7 +606,7 @@ Framework, but you can easily switch to
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2020-11-04 17:04:18 CET
+Last updated 2021-05-08 06:09:41 CEST
 </div>
 </div>
 </body>

Modified: karaf/site/production/manual/latest/provisioning.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/latest/provisioning.html?rev=1889921&r1=1889920&r2=1889921&view=diff
==============================================================================
--- karaf/site/production/manual/latest/provisioning.html (original)
+++ karaf/site/production/manual/latest/provisioning.html Sun May 16 05:27:06 2021
@@ -635,14 +635,45 @@ providing the capabilities to satisfy th
 <div class="paragraph">
 <p>A feature has a complete lifecycle: install, start, stop, update, uninstall.</p>
 </div>
+<div class="paragraph">
+<p>By default, the feature service is able to detect bundles which need to be refreshed.
+For instance, a bundle has to be refreshed:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>when bundle A uses an import package, and bundle B is installed providing a new version of the package (matching bundle A import version range). Then bundle A has to be refreshed to use the new version of the package.</p>
+</li>
+<li>
+<p>when bundle A uses an optional import package, and bundle B is installed providing this package. Then, bundle A has to be refreshed to actually use the package.</p>
+</li>
+<li>
+<p>when bundle A uses a package provided by bundle B, then, bundle A will be refreshed as well. This is kind of "cascading" refresh.</p>
+</li>
+</ol>
+</div>
+<div class="paragraph">
+<p>Some users might be concerned about this refresh behavior, and prefer to manage refresh "by hand".</p>
+</div>
+<div class="paragraph">
+<p>In that case, you can disable this auto refresh behavior using the <code>autoRefresh</code> property in <code>etc/org.apache.karaf.features.cfg</code> configuration file:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>autoRefresh=false</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>By default, <code>autoRefresh</code> is <code>true</code>. Using <code>false</code> will disable auto refresh performed by the Karaf features service.</p>
+</div>
 </div>
 <div class="sect3">
 <h4 id="_features_repositories">Features repositories</h4>
 <div class="paragraph">
-<p>The features are described in a features XML descriptor. This XML file contains the description of a set of features.</p>
+<p>The features are described in a features XML or JSON descriptor. This file contains the description of a set of features.</p>
 </div>
 <div class="paragraph">
-<p>A features XML descriptor is named a "features repository". Before being able to install a feature, you have to register
+<p>A features descriptor is named a "features repository". Before being able to install a feature, you have to register
 the features repository that provides the feature (using <code>feature:repo-add</code> command or FeatureMBean as described later).</p>
 </div>
 <div class="paragraph">
@@ -650,7 +681,7 @@ the features repository that provides th
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>&lt;features xmlns="http://karaf.apache.org/xmlns/features/v1.3.0"&gt;
+<pre>&lt;features name="my-features-repo" xmlns="http://karaf.apache.org/xmlns/features/v1.4.0"&gt;
   &lt;feature name="feature1" version="1.0.0"&gt;
     &lt;bundle&gt;...&lt;/bundle&gt;
     &lt;bundle&gt;...&lt;/bundle&gt;
@@ -663,6 +694,36 @@ the features repository that provides th
 </div>
 </div>
 <div class="paragraph">
+<p>Here&#8217;s the same descriptor in JSON format:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>{
+ "name": "my-features-repo",
+ "feature": [
+    {
+        "name": "feature1",
+        "version": "1.0.0",
+        "bundle": [
+           { "location": "..." },
+           { "location": "..."
+        ]
+    },
+    {
+        "name": "feature2",
+        "version": "1.1.0",
+        "feature": [
+            { "name": "feature1" }
+        ]
+        "bundle": [
+            { "location": "..." }
+        ]
+    }
+ ]
+}</pre>
+</div>
+</div>
+<div class="paragraph">
 <p>We can note that the features XML has a schema. Take a look on [Features XML Schema section|provisioning-schema] of the user guide
 for details.
 The <code>feature1</code> feature is available in version <code>1.0.0</code>, and contains two bundles. The <code>&lt;bundle/&gt;</code> element contains a URL
@@ -800,6 +861,28 @@ configuration file, in the <code>karaf.s
   &lt;/feature&gt;</pre>
 </div>
 </div>
+<div class="listingblock">
+<div class="content">
+<pre>{
+    "feature": [
+        {
+            "name": "my-project",
+            "version": "1.0.0"
+            "bundle": [
+                {
+                    "startLevel": 80,
+                    "location": "mvn:com.mycompany.myproject/myproject-dao"
+                },
+                {
+                    "startLeve": 85,
+                    "location": "mvn:com.mycompany.myproject/myproject-service"
+                }
+            ]
+        }
+    ]
+}</pre>
+</div>
+</div>
 <div class="paragraph">
 <p>The start-level attribute insures that the <code>myproject-dao</code> bundle is started before the bundles that use it.</p>
 </div>
@@ -828,15 +911,55 @@ To do so, a feature can specify the <cod
   &lt;/feature&gt;</pre>
 </div>
 </div>
+<div class="listingblock">
+<div class="content">
+<pre>{
+    "feature": [
+        {
+            "name": "my-project",
+            "version": "1.0.0"
+            "bundle": [
+                {
+                    "startLevel": 80,
+                    "start": false,
+                    "location": "mvn:com.mycompany.myproject/myproject-dao"
+                },
+                {
+                    "startLeve": 85,
+                    "start": false,
+                    "location": "mvn:com.mycompany.myproject/myproject-service"
+                }
+            ]
+        }
+    ]
+}</pre>
+</div>
+</div>
 </div>
 <div class="sect4">
 <h5 id="_dependency">Dependency</h5>
 <div class="paragraph">
-<p>A bundle can be flagged as being a dependency, using the <code>dependency</code> attribute set to true on the <code>&lt;bundle/&gt;</code> element.</p>
+<p>A bundle can be flagged as being a dependency, using the <code>dependency</code> attribute set to true on the <code>bundle</code> element.</p>
 </div>
 <div class="paragraph">
 <p>This information can be used by resolvers to compute the full list of bundles to be installed.</p>
 </div>
+<div class="listingblock">
+<div class="content">
+<pre>&lt;bundle dependency="true"&gt;...&lt;/bundle&gt;</pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>{
+    "dependency": true,
+    "location": "..."
+}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The dependency flag means that the bundle will be installed only if there&#8217;s not other bundle providing the same capability.</p>
+</div>
 </div>
 </div>
 <div class="sect3">
@@ -853,6 +976,33 @@ To do so, a feature can specify the <cod
   &lt;/feature&gt;</pre>
 </div>
 </div>
+<div class="listingblock">
+<div class="content">
+<pre>{
+    "feature": [
+        {
+            "name": "my-project",
+            "version": "1.0.0",
+            "feature": [
+                { "name": "other" }
+            ],
+            "bundle": [
+                {
+                    "startLevel": 80,
+                    "start": false,
+                    "location": "mvn:com.mycompany.myproject/myproject-dao"
+                },
+                {
+                    "startLevel": 85,
+                    "start": false,
+                    "location": "mvn:com.mycompany.myproject/myproject-service"
+                }
+            ]
+        }
+    ]
+}</pre>
+</div>
+</div>
 <div class="paragraph">
 <p>When the <code>my-project</code> feature will be installed, the <code>other</code> feature will be automatically installed as well.</p>
 </div>
@@ -867,6 +1017,23 @@ To do so, a feature can specify the <cod
 &lt;/feature&gt;</pre>
 </div>
 </div>
+<div class="listingblock">
+<div class="content">
+<pre>{
+    "feature": [
+        {
+            "name": "spring-dm",
+            "feature": [
+                {
+                    "name": "spring",
+                    "version": "[2.5.6,4)"
+                }
+            ]
+        }
+    ]
+}</pre>
+</div>
+</div>
 <div class="paragraph">
 <p>The feature with the highest version available in the range will be installed.</p>
 </div>
@@ -884,43 +1051,90 @@ To do so, a feature can specify the <cod
 <div class="paragraph">
 <p>A prerequisite feature is a special kind of dependency. If you add the <code>prerequisite</code> attribute to dependant feature tag then it will force installation and also activation of bundles in the dependant feature before the installation of the actual feature. This may be handy in the case that bundles enlisted in a given feature are not using pre installed URLs such as <code>wrap</code> or <code>war</code>.</p>
 </div>
+<div class="listingblock">
+<div class="content">
+<pre>&lt;feature name="foo" version="1.0.0"&gt;
+    &lt;feature prerequisite="true"&gt;bar&lt;/feature&gt;
+    ...
+&lt;/feature&gt;</pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>{
+    "name": "foo",
+    "version": "1.0.0",
+    "feature": [
+        {
+            "prerequisite": true,
+            "name": "bar"
+        }
+    ]
+}</pre>
+</div>
+</div>
 </div>
 </div>
 <div class="sect3">
 <h4 id="_feature_configurations">Feature configurations</h4>
 <div class="paragraph">
-<p>The <code>&lt;config/&gt;</code> element in a feature XML allows a feature to create and/or populate a configuration (identified by a configuration PID).</p>
+<p>The <code>&lt;config/&gt;</code> element in a feature XML (or "config" in feature JSON) allows a feature to create and/or populate a configuration (identified by a configuration PID).</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>&lt;config name="com.foo.bar"&gt;
+<pre>...
+&lt;config name="com.foo.bar"&gt;
   myProperty = myValue
-&lt;/config&gt;</pre>
+&lt;/config&gt;
+...</pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>...
+"config": [
+    {
+        "name": "com.foo.bar",
+        "value": "myProperty=myValue"
+    }
+]
+....</pre>
 </div>
 </div>
 <div class="paragraph">
-<p>The <code>name</code> attribute of the <code>&lt;config/&gt;</code> element corresponds to the configuration PID (see the [Configuration section|configuration] for details).</p>
+<p>The <code>name</code> attribute of the <code>config</code> element corresponds to the configuration PID (see the [Configuration section|configuration] for details).</p>
 </div>
 <div class="paragraph">
 <p>The installation of the feature will have the same effect as dropping a file named <code>com.foo.bar.cfg</code> in the <code>etc</code> folder.</p>
 </div>
 <div class="paragraph">
-<p>The content of the <code>&lt;config/&gt;</code> element is a set of properties, following the key=value standard.</p>
+<p>The content (value) of the <code>config</code> element is a set of properties, following the <code>key=value</code> standard.</p>
 </div>
 </div>
 <div class="sect3">
 <h4 id="_feature_configuration_files">Feature configuration files</h4>
 <div class="paragraph">
-<p>Instead of using the <code>&lt;config/&gt;</code> element, a feature can specify <code>&lt;configfile/&gt;</code> elements.</p>
+<p>Instead of using the <code>config</code> element, a feature can specify <code>configfile</code> elements.</p>
 </div>
 <div class="listingblock">
 <div class="content">
 <pre>&lt;configfile finalname="/etc/myfile.cfg" override="false"&gt;URL&lt;/configfile&gt;</pre>
 </div>
 </div>
+<div class="listingblock">
+<div class="content">
+<pre>  "configfile": [
+    {
+        "finalname": "/etc/myfile.cfg",
+        "override": false,
+        "location": "URL"
+    }
+  ]</pre>
+</div>
+</div>
 <div class="paragraph">
-<p>Instead of directly manipulating the Apache Karaf configuration layer (as when using the <code>&lt;config/&gt;</code> element), the
-<code>&lt;configfile/&gt;</code> element takes directly a file specified by a URL, and copy the file in the location specified by the
+<p>Instead of directly manipulating the Apache Karaf configuration layer (as when using the <code>config</code> element), the
+<code>configfile</code> element takes directly a file specified by a URL, and copy the file in the location specified by the
 <code>finalname</code> attribute.</p>
 </div>
 <div class="paragraph">
@@ -935,6 +1149,17 @@ ${karaf.home}, ${karaf.base}, ${karaf.et
 <pre>&lt;configfile finalname="${karaf.etc}/myfile.cfg" override="false"&gt;URL&lt;/configfile&gt;</pre>
 </div>
 </div>
+<div class="listingblock">
+<div class="content">
+<pre>  "configfile": [
+    {
+        "finalname": "${karaf.etc}/myfile.cfg",
+        "override": false,
+        "location": "URL"
+    }
+  ]</pre>
+</div>
+</div>
 <div class="paragraph">
 <p>If the file is already present at the desired location it is kept and the deployment of the configuration file is skipped,
 as a already existing file might contain customization. This behaviour can be overriden by <code>override</code> set to true.</p>
@@ -956,6 +1181,11 @@ the features and bundles capabilities an
 <pre>&lt;requirement&gt;osgi.ee;filter:=&amp;quot;(&amp;amp;(osgi.ee=JavaSE)(!(version&amp;gt;=1.8)))&amp;quot;&lt;/requirement&gt;</pre>
 </div>
 </div>
+<div class="listingblock">
+<div class="content">
+<pre>"requirement": "osgi.ee;filter="(&amp;(osgi.ee=JavaSE)(!(version&gt;1.8)))"</pre>
+</div>
+</div>
 <div class="paragraph">
 <p>The requirement specifies that the feature will work by only if the JDK version is not 1.8 (so basically 1.7).</p>
 </div>
@@ -1551,7 +1781,7 @@ feature3 won&#8217;t be installed:</p>
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2020-11-04 17:04:18 CET
+Last updated 2021-05-08 06:09:41 CEST
 </div>
 </div>
 </body>

Modified: karaf/site/production/manual/latest/quick-start.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/latest/quick-start.html?rev=1889921&r1=1889920&r2=1889921&view=diff
==============================================================================
--- karaf/site/production/manual/latest/quick-start.html (original)
+++ karaf/site/production/manual/latest/quick-start.html Sun May 16 05:27:06 2021
@@ -789,7 +789,7 @@ karaf@root()&gt;</pre>
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2020-11-04 17:04:18 CET
+Last updated 2020-12-18 11:39:47 CET
 </div>
 </div>
 </body>

Modified: karaf/site/production/manual/latest/remote.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/latest/remote.html?rev=1889921&r1=1889920&r2=1889921&view=diff
==============================================================================
--- karaf/site/production/manual/latest/remote.html (original)
+++ karaf/site/production/manual/latest/remote.html Sun May 16 05:27:06 2021
@@ -535,6 +535,27 @@ More over, you can also browse, download
 <div class="paragraph">
 <p>Apache Karaf embeds a complete SSHd server.</p>
 </div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>For security reason, by default, <code>karaf</code> user is disabled. To allow the logon, you have to have an user. You can enable
+<code>karaf</code> user by uncommenting the user in <code>etc/users.properties</code>:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>karaf = karaf,_g_:admingroup
+_g_\:admingroup = group,admin,manager,viewer,systembundles,ssh</pre>
+</div>
+</div>
+</td>
+</tr>
+</table>
+</div>
 <div class="sect3">
 <h4 id="_sshd_server">SSHd server</h4>
 <div class="paragraph">
@@ -1075,7 +1096,7 @@ looks for the artifacts (bundles, featur
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2020-11-04 17:04:18 CET
+Last updated 2021-05-08 06:09:41 CEST
 </div>
 </div>
 </body>

Modified: karaf/site/production/manual/latest/scheduler.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/latest/scheduler.html?rev=1889921&r1=1889920&r2=1889921&view=diff
==============================================================================
--- karaf/site/production/manual/latest/scheduler.html (original)
+++ karaf/site/production/manual/latest/scheduler.html Sun May 16 05:27:06 2021
@@ -879,7 +879,7 @@ org.quartz.jobStore.driverDelegateClass=
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2020-11-04 17:04:18 CET
+Last updated 2021-05-04 08:49:44 CEST
 </div>
 </div>
 </body>

Modified: karaf/site/production/manual/latest/security-framework.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/latest/security-framework.html?rev=1889921&r1=1889920&r2=1889921&view=diff
==============================================================================
--- karaf/site/production/manual/latest/security-framework.html (original)
+++ karaf/site/production/manual/latest/security-framework.html Sun May 16 05:27:06 2021
@@ -1861,7 +1861,7 @@ for (Principal p : subject.getPrincipals
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2020-11-04 17:04:18 CET
+Last updated 2021-05-08 06:09:41 CEST
 </div>
 </div>
 </body>

Modified: karaf/site/production/manual/latest/security.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/latest/security.html?rev=1889921&r1=1889920&r2=1889921&view=diff
==============================================================================
--- karaf/site/production/manual/latest/security.html (original)
+++ karaf/site/production/manual/latest/security.html Sun May 16 05:27:06 2021
@@ -557,6 +557,27 @@ Service) in an OSGi compliant way.</p>
 <div class="paragraph">
 <p>Your applications can also use the security framework (see the developer guide for details).</p>
 </div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>For security reason, by default, <code>karaf</code> user is disabled. To allow the logon, you have to have an user. You can enable
+<code>karaf</code> user by uncommenting the user in <code>etc/users.properties</code>:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>karaf = karaf,_g_:admingroup
+_g_\:admingroup = group,admin,manager,viewer,systembundles,ssh</pre>
+</div>
+</div>
+</td>
+</tr>
+</table>
+</div>
 <div class="sect3">
 <h4 id="_realms">Realms</h4>
 <div class="paragraph">
@@ -1386,7 +1407,7 @@ can access those.</p>
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2020-11-04 17:04:18 CET
+Last updated 2021-05-08 06:09:41 CEST
 </div>
 </div>
 </body>

Modified: karaf/site/production/manual/latest/webconsole.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/latest/webconsole.html?rev=1889921&r1=1889920&r2=1889921&view=diff
==============================================================================
--- karaf/site/production/manual/latest/webconsole.html (original)
+++ karaf/site/production/manual/latest/webconsole.html Sun May 16 05:27:06 2021
@@ -607,14 +607,31 @@ with the <code>/system/console</code> co
 </td>
 <td class="content">
 <div class="paragraph">
-<p>By default, only users with the <code>admin</code> role are allowed to logon to the Apache Karaf WebConsole.
-Right now, the WebConsole doesn&#8217;t use RBAC system as we have for console commands, or MBeans.</p>
+<p>For security reason, by default, <code>karaf</code> user is disabled. To allow the logon, you have to have an user. You can enable
+<code>karaf</code> user by uncommenting the user in <code>etc/users.properties</code>:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>karaf = karaf,_g_:admingroup
+_g_\:admingroup = group,admin,manager,viewer,systembundles,ssh</pre>
+</div>
+</div>
+<div class="exampleblock">
+<div class="content">
+
+</div>
 </div>
 </td>
 </tr>
 </table>
 </div>
 <div class="paragraph">
+<p>By default, only users with the <code>admin</code> role are allowed to logon to the Apache Karaf WebConsole.
+Right now, the WebConsole doesn&#8217;t use RBAC system as we have for console commands, or MBeans.</p>
+</div>
+<div class="exampleblock">
+<div class="content">
+<div class="paragraph">
 <p>You can change the security configuration of the webconsole in the
 <code>etc/org.apache.karaf.webconsole.cfg</code> configuration file:</p>
 </div>
@@ -630,9 +647,11 @@ role=admin</pre>
 </div>
 </div>
 </div>
+</div>
+</div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2020-11-04 17:04:18 CET
+Last updated 2021-05-08 06:09:41 CEST
 </div>
 </div>
 </body>