You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by zhuaiguo <zh...@hotmail.com> on 2008/10/21 18:07:21 UTC
SSL issure on Mina_2.0.0_M3
Hi guys,
I found an issure about SSL on Mina_2.0.0_M3. When I build a server using SSL, it works very fine with the ssl client built in Java. However, I tried similar client built in C#, the server with mina ssl throwed exception as follow.
When I downgrade the program to Mina_1.1.7, everything works fine. I believe there are some bugs in the Mina_2.0.2 codes.
java.lang.IllegalArgumentException at java.nio.Buffer.position(Buffer.java:218) at java.nio.HeapByteBuffer.put(HeapByteBuffer.java:185) at com.sun.net.ssl.internal.ssl.EngineArgs.gather(EngineArgs.java:140) at com.sun.net.ssl.internal.ssl.EngineOutputRecord.write(EngineOutputRecord.java:232) at com.sun.net.ssl.internal.ssl.EngineWriter.writeRecord(EngineWriter.java:165) at com.sun.net.ssl.internal.ssl.SSLEngineImpl.writeRecord(SSLEngineImpl.java:1151) at com.sun.net.ssl.internal.ssl.SSLEngineImpl.writeAppRecord(SSLEngineImpl.java:1121) at com.sun.net.ssl.internal.ssl.SSLEngineImpl.wrap(SSLEngineImpl.java:1036) at javax.net.ssl.SSLEngine.wrap(SSLEngine.java:452) at org.apache.mina.filter.ssl.SslHandler.encrypt(SslHandler.java:348) at org.apache.mina.filter.ssl.SslFilter.filterWrite(SslFilter.java:534) at org.apache.mina.filter.ssl.SslHandler.writeNetBuffer(SslHandler.java:546) at org.apa
che.mina.filter.ssl.SslHandler.handshake(SslHandler.java:489) at org.apache.mina.filter.ssl.SslHandler.messageReceived(SslHandler.java:286) at org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:407) at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:414) at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:49) at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:832) at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:60) at org.apache.mina.core.session.IoEvent.run(IoEvent.java:64) at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:551) at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:543) at org.apach
e.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:487) at java.lang.Thread.run(Thread.java:619)java.nio.InvalidMarkException at java.nio.Buffer.reset(Buffer.java:280) at org.apache.mina.core.buffer.AbstractIoBuffer.reset(AbstractIoBuffer.java:336) at org.apache.mina.core.polling.AbstractPollingIoProcessor.writeBuffer(AbstractPollingIoProcessor.java:759) at org.apache.mina.core.polling.AbstractPollingIoProcessor.flushNow(AbstractPollingIoProcessor.java:685) at org.apache.mina.core.polling.AbstractPollingIoProcessor.flush(AbstractPollingIoProcessor.java:621) at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$500(AbstractPollingIoProcessor.java:58) at org.apache.mina.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:861) at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51) at java.util.concur
rent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619)java.lang.IllegalArgumentException at java.nio.Buffer.position(Buffer.java:218) at java.nio.HeapByteBuffer.put(HeapByteBuffer.java:185) at com.sun.net.ssl.internal.ssl.EngineArgs.gather(EngineArgs.java:140) at com.sun.net.ssl.internal.ssl.EngineOutputRecord.write(EngineOutputRecord.java:232) at com.sun.net.ssl.internal.ssl.EngineWriter.writeRecord(EngineWriter.java:165) at com.sun.net.ssl.internal.ssl.SSLEngineImpl.writeRecord(SSLEngineImpl.java:1151) at com.sun.net.ssl.internal.ssl.SSLEngineImpl.writeAppRecord(SSLEngineImpl.java:1121) at com.sun.net.ssl.internal.ssl.SSLEngineImpl.wrap(SSLEngineImpl.java:1036) at javax.net.ssl.SSLEngine.wrap(SSLEngine.java:452) at org.apache.mina.filter.ssl.SslHandler.enc
rypt(SslHandler.java:348) at org.apache.mina.filter.ssl.SslFilter.filterWrite(SslFilter.java:534) at org.apache.mina.filter.ssl.SslHandler.writeNetBuffer(SslHandler.java:546) at org.apache.mina.filter.ssl.SslHandler.handshake(SslHandler.java:489) at org.apache.mina.filter.ssl.SslHandler.messageReceived(SslHandler.java:286) at org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:407) at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:414) at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:49) at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:832) at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:60) at org.apache.mina.core.session.IoEvent.run(IoEvent.java:64) at org.apache.mina.filter.executor.OrderedThr
eadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:551) at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:543) at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:487) at java.lang.Thread.run(Thread.java:619)java.nio.InvalidMarkException at java.nio.Buffer.reset(Buffer.java:280) at org.apache.mina.core.buffer.AbstractIoBuffer.reset(AbstractIoBuffer.java:336) at org.apache.mina.core.polling.AbstractPollingIoProcessor.writeBuffer(AbstractPollingIoProcessor.java:759) at org.apache.mina.core.polling.AbstractPollingIoProcessor.flushNow(AbstractPollingIoProcessor.java:685) at org.apache.mina.core.polling.AbstractPollingIoProcessor.flush(AbstractPollingIoProcessor.java:621) at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$500(AbstractPollingIoProcessor.java:58) at org.apache.min
a.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:861) at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619)java.nio.InvalidMarkException at java.nio.Buffer.reset(Buffer.java:280) at org.apache.mina.core.buffer.AbstractIoBuffer.reset(AbstractIoBuffer.java:336) at org.apache.mina.core.polling.AbstractPollingIoProcessor.writeBuffer(AbstractPollingIoProcessor.java:759) at org.apache.mina.core.polling.AbstractPollingIoProcessor.flushNow(AbstractPollingIoProcessor.java:685) at org.apache.mina.core.polling.AbstractPollingIoProcessor.flush(AbstractPollingIoProcessor.java:621) at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$50
0(AbstractPollingIoProcessor.java:58) at org.apache.mina.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:861) at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619)java.nio.InvalidMarkException at java.nio.Buffer.reset(Buffer.java:280) at org.apache.mina.core.buffer.AbstractIoBuffer.reset(AbstractIoBuffer.java:336) at org.apache.mina.core.polling.AbstractPollingIoProcessor.writeBuffer(AbstractPollingIoProcessor.java:759) at org.apache.mina.core.polling.AbstractPollingIoProcessor.flushNow(AbstractPollingIoProcessor.java:685) at org.apache.mina.core.polling.AbstractPollingIoProcessor.flush(AbstractPollingIoProcessor.java:621) at org
.apache.mina.core.polling.AbstractPollingIoProcessor.access$500(AbstractPollingIoProcessor.java:58) at org.apache.mina.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:861) at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619)java.nio.InvalidMarkException at java.nio.Buffer.reset(Buffer.java:280) at org.apache.mina.core.buffer.AbstractIoBuffer.reset(AbstractIoBuffer.java:336) at org.apache.mina.core.polling.AbstractPollingIoProcessor.writeBuffer(AbstractPollingIoProcessor.java:759) at org.apache.mina.core.polling.AbstractPollingIoProcessor.flushNow(AbstractPollingIoProcessor.java:685) at org.apache.mina.core.polling.AbstractPollingIoProc
essor.flush(AbstractPollingIoProcessor.java:621) at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$500(AbstractPollingIoProcessor.java:58) at org.apache.mina.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:861) at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619)java.nio.InvalidMarkException at java.nio.Buffer.reset(Buffer.java:280) at org.apache.mina.core.buffer.AbstractIoBuffer.reset(AbstractIoBuffer.java:336) at org.apache.mina.core.polling.AbstractPollingIoProcessor.writeBuffer(AbstractPollingIoProcessor.java:759) at org.apache.mina.core.polling.AbstractPollingIoProcessor.flushNow(AbstractPollingIoProcessor.java:685
) at org.apache.mina.core.polling.AbstractPollingIoProcessor.flush(AbstractPollingIoProcessor.java:621) at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$500(AbstractPollingIoProcessor.java:58) at org.apache.mina.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:861) at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619)java.nio.InvalidMarkException at java.nio.Buffer.reset(Buffer.java:280) at org.apache.mina.core.buffer.AbstractIoBuffer.reset(AbstractIoBuffer.java:336) at org.apache.mina.core.polling.AbstractPollingIoProcessor.writeBuffer(AbstractPollingIoProcessor.java:759) at org.apache.mina.core.polling.AbstractP
ollingIoProcessor.flushNow(AbstractPollingIoProcessor.java:685) at org.apache.mina.core.polling.AbstractPollingIoProcessor.flush(AbstractPollingIoProcessor.java:621) at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$500(AbstractPollingIoProcessor.java:58) at org.apache.mina.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:861) at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619)org.apache.mina.core.write.WriteTimeoutException at org.apache.mina.core.session.IdleStatusChecker.notifyWriteTimeout(IdleStatusChecker.java:254) at org.apache.mina.core.session.IdleStatusChecker.notifyIdleSession(IdleStatusChecker.java:200) at or
g.apache.mina.core.session.IdleStatusChecker.notifyIdleness(IdleStatusChecker.java:150) at org.apache.mina.core.polling.AbstractPollingIoProcessor.notifyIdleSessions(AbstractPollingIoProcessor.java:604) at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$700(AbstractPollingIoProcessor.java:58) at org.apache.mina.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:863) at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619)[DEBUG] 17:30:59,890 - Unexpected exception from SSLEngine.closeInbound().
javax.net.ssl.SSLException: Inbound closed before receiving peer's close_notify: possible truncation attack? at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190) at com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1366) at com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1334) at com.sun.net.ssl.internal.ssl.SSLEngineImpl.closeInbound(SSLEngineImpl.java:1273) at org.apache.mina.filter.ssl.SslHandler.destroy(SslHandler.java:155) at org.apache.mina.filter.ssl.SslFilter.sessionClosed(SslFilter.java:386) at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:378) at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$900(DefaultIoFilterChain.java:49) at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.sessionClosed(DefaultIoFilterChain.java:817) at org.apache.mina.core.filterchain
.IoFilterEvent.fire(IoFilterEvent.java:87) at org.apache.mina.core.session.IoEvent.run(IoEvent.java:64) at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:551) at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:543) at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:487) at java.lang.Thread.run(Thread.java:619)java.nio.InvalidMarkException at java.nio.Buffer.reset(Buffer.java:280) at org.apache.mina.core.buffer.AbstractIoBuffer.reset(AbstractIoBuffer.java:336) at org.apache.mina.core.polling.AbstractPollingIoProcessor.writeBuffer(AbstractPollingIoProcessor.java:759) at org.apache.mina.core.polling.AbstractPollingIoProcessor.flushNow(AbstractPollingIoProcessor.java:685) at org.apache.mina.core.polling.AbstractPollingIoProcessor.flush(AbstractPol
lingIoProcessor.java:621) at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$500(AbstractPollingIoProcessor.java:58) at org.apache.mina.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:861) at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619)
Hope it can help,
thanks
Aiguo
_________________________________________________________________
MSN 中文网,最新时尚生活资讯,白领聚集门户。
http://cn.msn.com
Re: SSL issure on Mina_2.0.0_M3
Posted by Emmanuel Lecharny <el...@gmail.com>.
zhuaiguo wrote:
> Hi guys,
>
> I found an issure about SSL on Mina_2.0.0_M3. When I build a server using SSL, it works very fine with the ssl client built in Java. However, I tried similar client built in C#, the server with mina ssl throwed exception as follow.
>
Do you have the server code and client code which demonstrate the
problem? It's pretty complicated to see what's going on with a hundreds
line long stack trace...
Also please provide some information about the JVM you are using, and
the system you are running on.
PS: and, please, when you provide a stacktrace, add some new lines !!!
--
--
cordialement, regards,
Emmanuel Lécharny
www.iktek.com
directory.apache.org