All Downloads are FREE. Search and download functionalities are using the official Maven repository.

xitrum.handler.SslChannelInitializer.scala Maven / Gradle / Ivy

The newest version!
package xitrum.handler

import io.netty.channel.ChannelHandler.Sharable
import io.netty.channel.ChannelInitializer
import io.netty.channel.socket.SocketChannel
import io.netty.handler.ssl.SslHandler

import xitrum.handler.inbound.FlashSocketPolicyHandler

/** This is a wrapper. It prepends SSL handler to the non-SSL pipeline. */
@Sharable
class SslChannelInitializer(nonSslChannelInitializer: ChannelInitializer[SocketChannel]) extends ChannelInitializer[SocketChannel] {
  override def initChannel(ch: SocketChannel): Unit = {
    val p = ch.pipeline
    p.addLast(classOf[SslHandler].getName, RebuilableSslContext.newHandler(ch.alloc))
    p.addLast(nonSslChannelInitializer)

    // FlashSocketPolicyHandler can't be used with SSL
    DefaultHttpChannelInitializer.removeHandlerIfExists(p, classOf[FlashSocketPolicyHandler])
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy