Class ProxyHandler

java.lang.Object
io.netty.channel.ChannelHandlerAdapter
io.netty.channel.ChannelInboundHandlerAdapter
io.netty.channel.SimpleChannelInboundHandler<RequestCtx>
org.tinyradius.io.server.handler.ProxyHandler
All Implemented Interfaces:
io.netty.channel.ChannelHandler, io.netty.channel.ChannelInboundHandler

public abstract class ProxyHandler
extends io.netty.channel.SimpleChannelInboundHandler<RequestCtx>
RadiusServer handler that proxies packets to destination.

RadiusClient port should be set to proxy port, which will be used to communicate with upstream servers. RadiusClient should also use a variant of PromiseAdapter which matches requests/responses by adding a custom Proxy-State attribute.

  • Nested Class Summary

    Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler

    io.netty.channel.ChannelHandler.Sharable
  • Constructor Summary

    Constructors 
    Constructor Description
    ProxyHandler​(RadiusClient radiusClient)  
  • Method Summary

    Modifier and Type Method Description
    protected void channelRead0​(io.netty.channel.ChannelHandlerContext ctx, RequestCtx msg)  
    protected abstract java.util.Optional<RadiusEndpoint> getProxyServer​(RadiusRequest request, RadiusEndpoint client)  

    Methods inherited from class io.netty.channel.SimpleChannelInboundHandler

    acceptInboundMessage, channelRead

    Methods inherited from class io.netty.channel.ChannelInboundHandlerAdapter

    channelActive, channelInactive, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught, userEventTriggered

    Methods inherited from class io.netty.channel.ChannelHandlerAdapter

    ensureNotSharable, handlerAdded, handlerRemoved, isSharable

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface io.netty.channel.ChannelHandler

    handlerAdded, handlerRemoved
  • Constructor Details

  • Method Details

    • channelRead0

      protected void channelRead0​(io.netty.channel.ChannelHandlerContext ctx, RequestCtx msg)
      Specified by:
      channelRead0 in class io.netty.channel.SimpleChannelInboundHandler<RequestCtx>
    • getProxyServer

      protected abstract java.util.Optional<RadiusEndpoint> getProxyServer​(RadiusRequest request, RadiusEndpoint client)
      Parameters:
      request - the request in question
      client - the client endpoint the request originated from (containing the address, port number and shared secret)
      Returns:
      RadiusEndpoint to proxy request to