Grigory created DIRMINA-1162:
--------------------------------

             Summary: Mina 2.1.5 + SSL + Android not working
                 Key: DIRMINA-1162
                 URL: https://issues.apache.org/jira/browse/DIRMINA-1162
             Project: MINA
          Issue Type: Bug
          Components: SSL
    Affects Versions: 2.1.5
            Reporter: Grigory


I'm using the mina library in my android app to connect to a server that also 
works with mina. Connection works without ssl, but after I added the ssl filter 
it stopped working. When using the pure ssl socket, everything works.

I add SslFilter like this at the first point of the filter chain:

 
{code:java}
SslFilter sslFilter = new SslFilter(sslContext);
sslFilter.setUseClientMode(true);
filters.addLast("sslFilter", sslFilter);{code}
 

android log:

 
{code:java}
2022-02-10 16:10:25.935 I/c.u.m.m.MinaConnector: Initialized connector {max I/O 
threads: 10, max task threads: 10}
2022-02-10 16:10:25.942 D/o.a.m.f.s.SslFilter: Adding the SSL Filter sslFilter 
to the chain
2022-02-10 16:10:25.943 D/o.a.m.f.s.SslHandler: Session Client[143](no 
sslEngine) Initializing the SSL Handler
2022-02-10 16:10:25.944 D/o.a.m.f.s.SslHandler: Session Client[143](no 
sslEngine) SSL Handler Initialization done.
2022-02-10 16:10:25.945 D/o.a.m.f.s.SslFilter: Session Client[143](ssl...) : 
Starting the first handshake
2022-02-10 16:10:25.945 D/o.a.m.f.s.SslHandler: Session Client[143](ssl...) 
processing the NEED_WRAP state
2022-02-10 16:10:25.948 D/o.a.m.f.s.SslFilter: Session Client[143](ssl...): 
Writing Message : WriteRequest: HeapBuffer[pos=0 lim=239 cap=261: 16 03 01 00 
EA 01 00 00 E6 03 03 EA 2E F4 1B 71 70 44 2E F5 33 A8 E8 58 3E 17 A1 04 6A 54 
FB 93 40 04 F8 A3 0C 7D 3B 5C 1B 26 17 20 21 B4 F0 3F 3A B2 DD B3 52 89 37 E8 
34 9A 87 FC 55 3F 27 7D B4 D1 AB 73 C4 84 28 B4 CC 67 28 87 00 24 13 01 13 02 
13 03 C0 2B C0 2F C0 2C C0 30 CC A9 CC A8 C0 09 C0 13 C0 0A C0 14 00 9C 00 9D 
00 2F 00 35 00 0A 01 00 00 79 00 17 00 00 FF 01 00 01 00 00 0A 00 08 00 06 00 
1D 00 17 00 18 00 0B 00 02 01 00 00 05 00 05 01 00 00 00 00 00 0D 00 14 00 12 
04 03 08 04 04 01 05 03 08 05 05 01 08 06 06 01 02 01 00 33 00 26 00 24 00 1D 
00 20 8A 7B C8 DF 0C 6E F7 ED 82 71 28 11 DF 3C D9 EC 07 2D B6 C9 E1 FC E1 1D 
E9 81 AC D1 92 0A 40 4D 00 2D 00 02 01 01 00 2B 00 09 08 03 04 03 03 03 02 03 
01...]
2022-02-10 16:10:25.948 D/o.a.m.f.s.SslHandler: Session Client[143](ssl...) 
processing the NEED_UNWRAP state
2022-02-10 16:10:25.949 I/o.a.m.f.l.LoggingFilter: CREATED
2022-02-10 16:10:25.949 D/MinaAdapter: sessionCreated session=[(0x0000008F: nio 
socket, client, /192.168.0.170:47164 => /192.168.0.178:3336)]
2022-02-10 16:10:25.952 I/c.u.m.m.MinaAdapter: Session 143 opened {local: 
/192.168.0.170:47164, remote: /192.168.0.178:3336}
2022-02-10 16:10:25.954 D/o.a.m.c.f.IoFilterEvent: Firing a SESSION_OPENED 
event for session 143
2022-02-10 16:10:25.954 I/o.a.m.f.l.LoggingFilter: OPENED
2022-02-10 16:10:25.955 D/MinaAdapter: sessionOpened session=[(0x0000008F: nio 
socket, client, /192.168.0.170:47164 => /192.168.0.178:3336)]
2022-02-10 16:10:25.956 D/o.a.m.c.f.IoFilterEvent: Event SESSION_OPENED has 
been fired for session 143
2022-02-10 16:10:34.012 D/o.a.m.c.f.IoFilterEvent: Firing a SESSION_CLOSED 
event for session 143
2022-02-10 16:10:34.012 I/o.a.m.f.l.LoggingFilter: CLOSED
2022-02-10 16:10:34.014 D/MinaAdapter: sessionClosed session=[(0x0000008F: nio 
socket, client, ::/:::47164 => /192.168.0.178:3336)]
2022-02-10 16:10:34.016 I/c.u.m.m.MinaAdapter: Session 143 closed {local: 
::/:::47164, remote: null}
2022-02-10 16:10:34.026 D/o.a.m.c.f.IoFilterEvent: Event SESSION_CLOSED has 
been fired for session 143{code}
 

The following error appears on the server, but when using the desktop Java 
client with mina, everything works.
{code:java}
javax.net.ssl.SSLException: Improper close state: Status = OK HandshakeStatus = 
NEED_WRAP
bytesConsumed = 0 bytesProduced = 7 sequenceNumber = 0
    at org.apache.mina.filter.ssl.SslHandler.closeOutbound(SslHandler.java:497)
    at org.apache.mina.filter.ssl.SslFilter.initiateClosure(SslFilter.java:762)
    at org.apache.mina.filter.ssl.SslFilter.filterClose(SslFilter.java:693)
    at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterClose(DefaultIoFilterChain.java:776)
    at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1600(DefaultIoFilterChain.java:49)
    at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterClose(DefaultIoFilterChain.java:1155)
    at 
org.apache.mina.core.filterchain.IoFilterAdapter.filterClose(IoFilterAdapter.java:146)
    at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterClose(DefaultIoFilterChain.java:776)
    at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1600(DefaultIoFilterChain.java:49)
    at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterClose(DefaultIoFilterChain.java:1155)
    at 
org.apache.mina.filter.executor.ExecutorFilter.filterClose(ExecutorFilter.java:608)
    at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterClose(DefaultIoFilterChain.java:776)
    at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1600(DefaultIoFilterChain.java:49)
    at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterClose(DefaultIoFilterChain.java:1155)
    at 
org.apache.mina.core.filterchain.IoFilterAdapter.filterClose(IoFilterAdapter.java:146)
    at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterClose(DefaultIoFilterChain.java:776)
    at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1600(DefaultIoFilterChain.java:49)
    at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterClose(DefaultIoFilterChain.java:1155)
    at 
org.apache.mina.core.filterchain.IoFilterAdapter.filterClose(IoFilterAdapter.java:146)
    at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterClose(DefaultIoFilterChain.java:776)
    at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.fireFilterClose(DefaultIoFilterChain.java:769)
    at 
org.apache.mina.core.session.AbstractIoSession.closeNow(AbstractIoSession.java:353)
    at 
org.apache.mina.core.session.DefaultIoSessionDataStructureFactory$DefaultWriteRequestQueue.poll(DefaultIoSessionDataStructureFactory.java:237)
    at 
org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.flushNow(AbstractPollingIoProcessor.java:981)
    at 
org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.flush(AbstractPollingIoProcessor.java:921)
    at 
org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:688)
    at 
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown 
Source)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown 
Source)
    at java.base/java.lang.Thread.run(Unknown Source){code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@mina.apache.org
For additional commands, e-mail: dev-h...@mina.apache.org

Reply via email to