This is an automated email from the ASF dual-hosted git repository.
elecharny pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mina-site.git
The following commit(s) were added to refs/heads/master by this push:
new df68f63f6 Announced the MINA 2.2.5 release
df68f63f6 is described below
commit df68f63f6b00e25e56702eaf44c0e02d518838ab
Author: emmanuel lecharny <[email protected]>
AuthorDate: Fri Nov 28 10:00:03 2025 +0100
Announced the MINA 2.2.5 release
---
config.toml | 2 +-
source/downloads-mina_2_2.md | 26 +++++++++++-----------
source/mina-project/downloads_2_2.md | 22 +++++++++---------
source/mina-project/downloads_old.md | 1 +
source/mina-project/news.md | 11 +++++++++
.../technical-documentation/ssl-tls-internal.md | 15 ++++++++-----
static/mina-project/gen-docs/.htaccess | 4 ++--
7 files changed, 49 insertions(+), 32 deletions(-)
diff --git a/config.toml b/config.toml
index 5f7b11eb3..c5579772d 100644
--- a/config.toml
+++ b/config.toml
@@ -42,7 +42,7 @@ date = ["date", ":filename", "publishDate", "lastmod"]
version_asyncweb = "2.0.0-SNAPSHOT"
version_mina_2_0 = "2.0.27"
version_mina_2_1 = "2.1.10"
-version_mina_2_2 = "2.2.4"
+version_mina_2_2 = "2.2.5"
version_ftpserver_1_1 = "1.1.4"
version_ftpserver_1_2 = "1.2.1"
version_sshd = "2.16.0"
diff --git a/source/downloads-mina_2_2.md b/source/downloads-mina_2_2.md
index 0b8d8c2e4..9b755757e 100644
--- a/source/downloads-mina_2_2.md
+++ b/source/downloads-mina_2_2.md
@@ -4,19 +4,19 @@ title: MINA Downloads
# Latest MINA Releases
-## Apache MINA 2.2.4 <font color="green">stable</font> (Java 8+)
+## Apache MINA 2.2.5 <font color="green">stable</font> (Java 8+)
### Binaries
-* .tar.gz archive
[mina-2.2.4](https://www.apache.org/dyn/closer.lua/mina/mina/2.2.4/apache-mina-2.2.4-bin.tar.gz)
(signatures :
[SHA256](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-bin.tar.gz.sha256)
[SHA512](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-bin.tar.gz.sha512)
[ASC](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-bin.tar.gz.asc))
-* .tar.bz2 archive
[mina-2.2.4](https://www.apache.org/dyn/closer.lua/mina/mina/2.2.4/apache-mina-2.2.4-bin.tar.bz2)
(signatures :
[SHA256](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-bin.tar.bz2.sha256)
[SHA512](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-bin.tar.bz2.sha512)
[ASC](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-bin.tar.bz2.asc))
-* .zip archive
[mina-2.2.4](https://www.apache.org/dyn/closer.lua/mina/mina/2.2.4/apache-mina-2.2.4-bin.zip)
(signatures :
[SHA256](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-bin.zip.sha256)
[SHA512](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-bin.zip.sha512)
[ASC](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-bin.zip.asc))
+* .tar.gz archive
[mina-2.2.5](https://www.apache.org/dyn/closer.lua/mina/mina/2.2.5/apache-mina-2.2.5-bin.tar.gz)
(signatures :
[SHA256](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-bin.tar.gz.sha256)
[SHA512](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-bin.tar.gz.sha512)
[ASC](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-bin.tar.gz.asc))
+* .tar.bz2 archive
[mina-2.2.5](https://www.apache.org/dyn/closer.lua/mina/mina/2.2.5/apache-mina-2.2.5-bin.tar.bz2)
(signatures :
[SHA256](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-bin.tar.bz2.sha256)
[SHA512](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-bin.tar.bz2.sha512)
[ASC](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-bin.tar.bz2.asc))
+* .zip archive
[mina-2.2.5](https://www.apache.org/dyn/closer.lua/mina/mina/2.2.5/apache-mina-2.2.5-bin.zip)
(signatures :
[SHA256](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-bin.zip.sha256)
[SHA512](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-bin.zip.sha512)
[ASC](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-bin.zip.asc))
### Sources
-* .src.tar.gz archive
[mina-2.2.4](https://www.apache.org/dyn/closer.lua/mina/mina/2.2.4/apache-mina-2.2.4-src.tar.gz)
(signatures :
[SHA256](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-src.tar.gz.sha256)
[SHA512](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-src.tar.gz.sha512)
[ASC](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-src.tar.gz.asc))
-* .src.tar.bz2 archive
[mina-2.2.4](https://www.apache.org/dyn/closer.lua/mina/mina/2.2.4/apache-mina-2.2.4-src.tar.bz2)
(signatures :
[SHA256](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-src.tar.bz2.sha256)
[SHA512](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-src.tar.bz2.sha512)
[ASC](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-src.tar.bz2.asc))
-* .src.zip archive
[mina-2.2.4](https://www.apache.org/dyn/closer.lua/mina/mina/2.2.4/apache-mina-2.2.4-src.zip)
(signatures :
[SHA256](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-src.zip.sha256)
[SHA512](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-src.zip.sha512)
[ASC](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-src.zip.asc))
+* .src.tar.gz archive
[mina-2.2.5](https://www.apache.org/dyn/closer.lua/mina/mina/2.2.5/apache-mina-2.2.5-src.tar.gz)
(signatures :
[SHA256](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-src.tar.gz.sha256)
[SHA512](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-src.tar.gz.sha512)
[ASC](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-src.tar.gz.asc))
+* .src.tar.bz2 archive
[mina-2.2.5](https://www.apache.org/dyn/closer.lua/mina/mina/2.2.5/apache-mina-2.2.5-src.tar.bz2)
(signatures :
[SHA256](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-src.tar.bz2.sha256)
[SHA512](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-src.tar.bz2.sha512)
[ASC](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-src.tar.bz2.asc))
+* .src.zip archive
[mina-2.2.5](https://www.apache.org/dyn/closer.lua/mina/mina/2.2.5/apache-mina-2.2.5-src.zip)
(signatures :
[SHA256](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-src.zip.sha256)
[SHA512](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-src.zip.sha512)
[ASC](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-src.zip.asc))
<div class="note" markdown="1">
For people wanting to use the <strong>serial</strong> package, we don't
include the <strong>rxtx.jar</strong> library in the releases, as it's under a
LGPL license. Please download it from <a
href="http://rxtx.qbang.org/wiki/index.php/Download" class="external-link"
rel="nofollow">http://rxtx.qbang.org/wiki/index.php/Download</a> or add the
associated dependency in your maven pom.xml :
@@ -34,17 +34,17 @@ title: MINA Downloads
The PGP signatures can be verified using PGP or GPG. First download the
[KEYS](https://downloads.apache.org/mina/KEYS) as well as the asc signature
file for the relevant distribution. Then verify the signatures using:
$ pgpk -a KEYS
- $ pgpv mina-2.2.4.tar.gz.asc
+ $ pgpv mina-2.2.5.tar.gz.asc
or
$ pgp -ka KEYS
- $ pgp mina-2.2.4.tar.gz.asc
+ $ pgp mina-2.2.5.tar.gz.asc
or
$ gpg --import KEYS
- $ gpg --verify mina-2.2.4.tar.gz.asc
+ $ gpg --verify mina-2.2.5.tar.gz.asc
Alternatively, you can verify the checksums of the files (see the [How to
verify downloaded files page](https://www.apache.org/info/verification.html)).
@@ -59,21 +59,21 @@ The PGP signatures can be verified using PGP or GPG. First
download the [KEYS](h
```bash
$ pgpk -a KEYS
-$ pgpv mina-2.2.4.tar.gz.asc
+$ pgpv mina-2.2.5.tar.gz.asc
```
or
```bash
$ pgp -ka KEYS
-$ pgp mina-2.2.4.tar.gz.asc
+$ pgp mina-2.2.5.tar.gz.asc
```
or
```bash
$ gpg --import KEYS
-$ gpg --verify mina-2.2.4.tar.gz.asc
+$ gpg --verify mina-2.2.5.tar.gz.asc
```
# Previous Releases
diff --git a/source/mina-project/downloads_2_2.md
b/source/mina-project/downloads_2_2.md
index 7cbeb37a0..4a6163a79 100644
--- a/source/mina-project/downloads_2_2.md
+++ b/source/mina-project/downloads_2_2.md
@@ -5,19 +5,19 @@ title: MINA 2.2.x Downloads
# Latest MINA Releases
-## Apache MINA 2.2.4 <font color="green">stable</font> (Java 8+)
+## Apache MINA 2.2.5 <font color="green">stable</font> (Java 8+)
### Binaries
-* .tar.gz archive
[mina-2.2.4](https://www.apache.org/dyn/closer.lua/mina/mina/2.2.4/apache-mina-2.2.4-bin.tar.gz)
(signatures :
[SHA256](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-bin.tar.gz.sha256)
[SHA512](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-bin.tar.gz.sha512)
[ASC](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-bin.tar.gz.asc))
-* .tar.bz2 archive
[mina-2.2.4](https://www.apache.org/dyn/closer.lua/mina/mina/2.2.4/apache-mina-2.2.4-bin.tar.bz2)
(signatures :
[SHA256](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-bin.tar.bz2.sha256)
[SHA512](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-bin.tar.bz2.sha512)
[ASC](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-bin.tar.bz2.asc))
-* .zip archive
[mina-2.2.4](https://www.apache.org/dyn/closer.lua/mina/mina/2.2.4/apache-mina-2.2.4-bin.zip)
(signatures :
[SHA256](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-bin.zip.sha256)
[SHA512](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-bin.zip.sha512)
[ASC](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-bin.zip.asc))
+* .tar.gz archive
[mina-2.2.5](https://www.apache.org/dyn/closer.lua/mina/mina/2.2.5/apache-mina-2.2.5-bin.tar.gz)
(signatures :
[SHA256](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-bin.tar.gz.sha256)
[SHA512](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-bin.tar.gz.sha512)
[ASC](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-bin.tar.gz.asc))
+* .tar.bz2 archive
[mina-2.2.5](https://www.apache.org/dyn/closer.lua/mina/mina/2.2.5/apache-mina-2.2.5-bin.tar.bz2)
(signatures :
[SHA256](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-bin.tar.bz2.sha256)
[SHA512](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-bin.tar.bz2.sha512)
[ASC](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-bin.tar.bz2.asc))
+* .zip archive
[mina-2.2.5](https://www.apache.org/dyn/closer.lua/mina/mina/2.2.5/apache-mina-2.2.5-bin.zip)
(signatures :
[SHA256](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-bin.zip.sha256)
[SHA512](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-bin.zip.sha512)
[ASC](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-bin.zip.asc))
### Sources
-* .src.tar.gz archive
[mina-2.2.4](https://www.apache.org/dyn/closer.lua/mina/mina/2.2.4/apache-mina-2.2.4-src.tar.gz)
(signatures :
[SHA256](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-src.tar.gz.sha256)
[SHA512](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-src.tar.gz.sha512)
[ASC](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-src.tar.gz.asc))
-* .src.tar.bz2 archive
[mina-2.2.4](https://www.apache.org/dyn/closer.lua/mina/mina/2.2.4/apache-mina-2.2.4-src.tar.bz2)
(signatures :
[SHA256](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-src.tar.bz2.sha256)
[SHA512](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-src.tar.bz2.sha512)
[ASC](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-src.tar.bz2.asc))
-* .src.zip archive
[mina-2.2.4](https://www.apache.org/dyn/closer.lua/mina/mina/2.2.4/apache-mina-2.2.4-src.zip)
(signatures :
[SHA256](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-src.zip.sha256)
[SHA512](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-src.zip.sha512)
[ASC](https://www.apache.org/dist/mina/mina/2.2.4/apache-mina-2.2.4-src.zip.asc))
+* .src.tar.gz archive
[mina-2.2.5](https://www.apache.org/dyn/closer.lua/mina/mina/2.2.5/apache-mina-2.2.5-src.tar.gz)
(signatures :
[SHA256](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-src.tar.gz.sha256)
[SHA512](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-src.tar.gz.sha512)
[ASC](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-src.tar.gz.asc))
+* .src.tar.bz2 archive
[mina-2.2.5](https://www.apache.org/dyn/closer.lua/mina/mina/2.2.5/apache-mina-2.2.5-src.tar.bz2)
(signatures :
[SHA256](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-src.tar.bz2.sha256)
[SHA512](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-src.tar.bz2.sha512)
[ASC](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-src.tar.bz2.asc))
+* .src.zip archive
[mina-2.2.5](https://www.apache.org/dyn/closer.lua/mina/mina/2.2.5/apache-mina-2.2.5-src.zip)
(signatures :
[SHA256](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-src.zip.sha256)
[SHA512](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-src.zip.sha512)
[ASC](https://www.apache.org/dist/mina/mina/2.2.5/apache-mina-2.2.5-src.zip.asc))
<div class="note" markdown="1">
For people wanting to use the <strong>serial</strong> package, we don't
include the <strong>rxtx.jar</strong> library in the releases, as it's under a
LGPL license. Please download it from <a
href="http://rxtx.qbang.org/wiki/index.php/Download" class="external-link"
rel="nofollow">http://rxtx.qbang.org/wiki/index.php/Download</a> or add the
associated dependency in your maven pom.xml :
@@ -35,17 +35,17 @@ title: MINA 2.2.x Downloads
The PGP signatures can be verified using PGP or GPG. First download the
[KEYS](https://downloads.apache.org/mina/KEYS) as well as the asc signature
file for the relevant distribution. Then verify the signatures using:
$ pgpk -a KEYS
- $ pgpv mina-2.2.4.tar.gz.asc
+ $ pgpv mina-2.2.5.tar.gz.asc
or
$ pgp -ka KEYS
- $ pgp mina-2.2.4.tar.gz.asc
+ $ pgp mina-2.2.5.tar.gz.asc
or
$ gpg --import KEYS
- $ gpg --verify mina-2.2.4.tar.gz.asc
+ $ gpg --verify mina-2.2.5.tar.gz.asc
Alternatively, you can verify the checksums of the files (see the [How to
verify downloaded files page](https://www.apache.org/info/verification.html)).
@@ -79,7 +79,7 @@ MINA is not a stand-alone software, so 'the feature set' here
also includes the
Here's an example that illustrates how MINA version number increases:
<div class="info" markdown="1">
- 2.0.0-M1 -> 2.0.0-M3 -> 2.0.0-M3 -> 2.0.0-M4 -> 2.0.0-RC1 -> 2.0.0-RC2 ->
2.0.0-RC3 -> <strong>2.0.0</strong> -> 2.0.1 -> 2.0.2 -> 2.2.4-M1 ...
+ 2.0.0-M1 -> 2.0.0-M3 -> 2.0.0-M3 -> 2.0.0-M4 -> 2.0.0-RC1 -> 2.0.0-RC2 ->
2.0.0-RC3 -> <strong>2.0.0</strong> -> 2.0.1 -> 2.0.2 -> 2.2.5-M1 ...
</div>
Please note that we always specify the micro number, even if it's zero.
diff --git a/source/mina-project/downloads_old.md
b/source/mina-project/downloads_old.md
index 4bddef9b2..1980e7f7e 100644
--- a/source/mina-project/downloads_old.md
+++ b/source/mina-project/downloads_old.md
@@ -23,6 +23,7 @@ title: MINA Older Downloads
| Version| Download Links | Date |
|:-:|:-:|:-:|
+| ApacheDS MINA 2.2.4 |
[Download](https://archive.apache.org/dist/mina/mina/2.2.4/),
[Javadoc](https://mina.apache.org/mina-project/gen-docs/2.2.4/apidocs/index.html),
[Test
javadoc](https://mina.apache.org/mina-project/gen-docs/2.2.4/testapidocs/index.html),
[Xref](https://mina.apache.org/mina-project/gen-docs/2.2.4/xref/index.html),
[Xref
test](https://mina.apache.org/mina-project/gen-docs/2.2.4/xref-test/index.html)
| 24/Dec/2024 |
| ApacheDS MINA 2.2.3 |
[Download](https://archive.apache.org/dist/mina/mina/2.2.3/),
[Javadoc](https://mina.apache.org/mina-project/gen-docs/2.2.3/apidocs/index.html),
[Test
javadoc](https://mina.apache.org/mina-project/gen-docs/2.2.3/testapidocs/index.html),
[Xref](https://mina.apache.org/mina-project/gen-docs/2.2.3/xref/index.html),
[Xref
test](https://mina.apache.org/mina-project/gen-docs/2.2.3/xref-test/index.html)
| 12/Sep/2023 |
| ApacheDS MINA 2.2.2 |
[Download](https://archive.apache.org/dist/mina/mina/2.2.2/),
[Javadoc](https://mina.apache.org/mina-project/gen-docs/2.2.2/apidocs/index.html),
[Test
javadoc](https://mina.apache.org/mina-project/gen-docs/2.2.2/testapidocs/index.html),
[Xref](https://mina.apache.org/mina-project/gen-docs/2.2.2/xref/index.html),
[Xref
test](https://mina.apache.org/mina-project/gen-docs/2.2.2/xref-test/index.html)
| 5/Jun/2023 |
| ApacheDS MINA 2.2.1 |
[Download](https://archive.apache.org/dist/mina/mina/2.2.1/),
[Javadoc](https://mina.apache.org/mina-project/gen-docs/2.2.1/apidocs/index.html),
[Test
javadoc](https://mina.apache.org/mina-project/gen-docs/2.2.1/testapidocs/index.html),
[Xref](https://mina.apache.org/mina-project/gen-docs/2.2.1/xref/index.html),
[Xref
test](https://mina.apache.org/mina-project/gen-docs/2.2.1/xref-test/index.html)
| 24/Jul/2022 |
diff --git a/source/mina-project/news.md b/source/mina-project/news.md
index c5eb5f1d1..14ba0552c 100644
--- a/source/mina-project/news.md
+++ b/source/mina-project/news.md
@@ -5,6 +5,17 @@ title: News
# News
+## MINA 2.2.5 released _posted on November, 28, 2025_
+
+The MINA project is pleased to announce the MINA 2.2.5 release.
+
+This is a bug fix release, which fixes the following issues:
+
+* A potential issue with the selector not being protected against concurrent
access, found by Adam Herring
+* A (temporary) fix for DIRMINA-423, brought by Jan Zelmer, forbiding
asynchronous tasks to be executed.
+
+
+
## MINA 2.2.4, 2.1.10, 2.0.27 released _posted on December, 24, 2024_
The MINA project is pleased to announce the MINA 2.2.4, 2.1.10 and 2.0.27
release.
diff --git a/source/mina-project/technical-documentation/ssl-tls-internal.md
b/source/mina-project/technical-documentation/ssl-tls-internal.md
index c79bc5cba..44adc95e8 100644
--- a/source/mina-project/technical-documentation/ssl-tls-internal.md
+++ b/source/mina-project/technical-documentation/ssl-tls-internal.md
@@ -7,7 +7,7 @@ title: SSL/TLS internals
This is a technical description of how SSL/TLS are handled in MINA. You don't
need to read this to have it working, better have a look at the [SslFilter user
guide](../userguide/ch11-ss-filter/ch11-ssl-filter.html) page. However, if you
want to get a deeper understanding on how it's built, this is the place !
-Note: We will assume the **MINA API** user has already created the
_SSLContext_ to use, so it's not part of those explanations.
+Note: We will assume the **MINA API** user has already created the
_SSLContext_ to use, so it's not part of those explanations.s
## Components
@@ -23,6 +23,10 @@ In order to inject the filter in the chain, it must first be
created. This filte
* **SSLContext**: the Java class that contains all the information related to
the **SSL/TLS** establishment
* __autoStart__: tells if the handshake should be started immediately. This is
an optional parameter, defaulting to **TRUE**. In some cases, like when using
__startTLS__, it's critical to not start the handshake immediately, as it will
be established on demand.
+Regarding this __autoStart__ flag, the use case where you set it to **false**
are pretty specific. First, on the server side, if your filter chain is
configured to contain the **SslFilter**, then this chain will be instanciated
when a session is opened, which means the client is already connected, and the
very first message it will send is a __handshake__ message. The server **must**
be ready to deal with it.
+
+The problem this flag tries to solve is a use case where you want the
**SslFilter** to be present in the chain, but don't want the **handshake**
protocol to kick in because you have other filters that need to be able to
exchange in clear text with the remote peer on the client side. For instance,
if you have a filter set *before* the **SslFilter** in the chain, that is going
to send a CONNECT message to a remote peer before establishing the secured
connection, then you need to wait for t [...]
+
## Initialization
When injecting the **SslFilter** into your chain, either before starting your
service, or while running it, it has to be initialized in some way. Actually,
this is a two phases process:
@@ -35,7 +39,7 @@ In any case, it's handled by the __onPreAdd__ and
__onPostAdd__ events, which me
### onPreAdd
-The **SslHandler** class is created and initialized, and the instance is
stored into the session attributes. That means each session has its own
instance of **SslHandler**. This initialization will create a **SSLEngine**
instance based on the provided **SSLContext** instance. The initialization will
differ based on the 'side' you are on: server or client. Basically, the server
side will wait for the client to initiate the handshake, while the client side
will initiate it.
+The **SslHandler** class is created and initialized, and the instance is
stored into the session attributes. That means each session has its own
instance of **SslHandler** (but only one per session). This initialization will
create a **SSLEngine** instance based on the provided **SSLContext** instance.
The initialization will differ based on the 'side' you are on: server or
client. Basically, the server side will wait for the client to initiate the
handshake, while the client side will i [...]
It's also responsible to set the enabled ciphers and protocols, if one wants
to use a restricted set, or an extended set (newer versions of Java have
disabled old protocols and insecure ciphers).
@@ -47,6 +51,7 @@ Last, not least, it sets a list of status flags:
Side note: some of those flags are probably spurious. Some cleanup might be
done to get rid of the useless ones.
+Once that has been done, we can call the _SslHandler.handshake()_ method
### onPostAdd
@@ -71,11 +76,11 @@ We need to keep whatever comes until it's complete (ie
until the _SslEngine.unwr
Assuming we have to deal with *Handhsake* packets, there are a few technical
use cases:
-* We have received less than one packet: in this case, we will gather the
newly coming data to the pending data. The maximum message size will be limited
by the SO_RCVBUF configuration set when initializing the server, and it may be
smaller than a **TLS** packet size. In any case, we gather whatever we just
received to the pending buffer, increasing its size on the fly. Once we have a
complete **TLS** packet, we can process it, remove if from the buffer, and
continue from the remaining bytes.
+* We have received less than one packet: in this case, we will append the
newly coming data to the pending data. The maximum message size will be limited
by the SO_RCVBUF configuration set when initializing the server, and it may be
smaller than a **TLS** packet size. In any case, we gather whatever we just
received tinto the pending buffer, increasing its size on the fly. Once we have
a complete **TLS** packet, we can process it, remove if from the buffer, and
continue from the remainin [...]
* we have received one or more than one packet: In this case, we will proceed
packet by packet, until we have processed each one of them.
-Note: The pending buffer can be pre-allocated to the size set by the
SO_RECVBUF parameter, in order to avoid to allocate it each time we process a
new packet.
+Note: The pending buffer can be pre-allocated to the size set by the
SO_RECVBUF parameter, in order to avoid allocating it each time we process a
new packet.
Note: Using a circular ByteBuffer would spare the system the need to move the
data to the begining of the buffer when it has consumed a **TLS** packet and
there are remaining bytes, sadly the **SslEngine** class expect plain
**ByteBuffer** instances :-/.
@@ -89,7 +94,7 @@ All the received data are flowing through the
*SslFilter.messageReceived()* meth
}
```
-The *SslHandler.receive()* method will gather the incoming data, then process
them. When done, it may have to complete the following steps:
+The *SslHandler.receive()* method will gather the incoming data, and process
them. When done, it may have to complete the following steps:
* Write back to the remote peer the constructed messages (either *handshake*
packets or encrypted data packets)
* Send to the application the received messages (only data packets)
diff --git a/static/mina-project/gen-docs/.htaccess
b/static/mina-project/gen-docs/.htaccess
index 4150d2e9b..75b3abd3c 100644
--- a/static/mina-project/gen-docs/.htaccess
+++ b/static/mina-project/gen-docs/.htaccess
@@ -8,8 +8,8 @@ RewriteRule ^latest-2.0/(.*)$
https://nightlies.apache.org/mina/mina/2.0.27/$1 [
RewriteRule ^latest-2.1$ https://nightlies.apache.org/mina/mina/2.1.10/ [QSA,L]
RewriteRule ^latest-2.1/(.*)$ https://nightlies.apache.org/mina/mina/2.1.10/$1
[QSA,L]
-RewriteRule ^latest-2.2$ https://nightlies.apache.org/mina/mina/2.2.4/ [QSA,L]
-RewriteRule ^latest-2.2/(.*)$ https://nightlies.apache.org/mina/mina/2.2.4/$1
[QSA,L]
+RewriteRule ^latest-2.2$ https://nightlies.apache.org/mina/mina/2.2.5/ [QSA,L]
+RewriteRule ^latest-2.2/(.*)$ https://nightlies.apache.org/mina/mina/2.2.5/$1
[QSA,L]
# Redirect everything else
RewriteRule ^(.*)$ https://nightlies.apache.org/mina/mina/$1 [QSA,L]