Package org.tinyradius.server
Class HandlerAdapter<T extends RadiusPacket,S extends SecretProvider>
- java.lang.Object
-
- io.netty.channel.ChannelHandlerAdapter
-
- io.netty.channel.ChannelInboundHandlerAdapter
-
- io.netty.channel.SimpleChannelInboundHandler<io.netty.channel.socket.DatagramPacket>
-
- org.tinyradius.server.HandlerAdapter<T,S>
-
- Type Parameters:
T
- RadiusPacket types that this Channel can accept
public class HandlerAdapter<T extends RadiusPacket,S extends SecretProvider> extends io.netty.channel.SimpleChannelInboundHandler<io.netty.channel.socket.DatagramPacket>
SimpleChannelInboundHandler implementation that converts between RadiusPackets and DatagramPackets. Acts as an adapter so RequestHandlers dont have to be concerned withDatagramPacket
, and can work withRadiusPacket
directly.
-
-
Constructor Summary
Constructors Constructor Description HandlerAdapter(PacketEncoder packetEncoder, RequestHandler<T,S> requestHandler, io.netty.util.Timer timer, S secretProvider, java.lang.Class<T> packetClass)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
channelRead0(io.netty.channel.ChannelHandlerContext ctx, io.netty.channel.socket.DatagramPacket requestPacket)
protected io.netty.util.concurrent.Future<io.netty.channel.socket.DatagramPacket>
handleRequest(io.netty.channel.Channel channel, io.netty.channel.socket.DatagramPacket datagramPacket)
Processes DatagramPacket.java.lang.String
toString()
-
Methods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, handlerAdded, handlerRemoved, isSharable
-
Methods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelActive, channelInactive, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught, userEventTriggered
-
-
-
-
Constructor Detail
-
HandlerAdapter
public HandlerAdapter(PacketEncoder packetEncoder, RequestHandler<T,S> requestHandler, io.netty.util.Timer timer, S secretProvider, java.lang.Class<T> packetClass)
- Parameters:
packetEncoder
- for encoding/decoding RadiusPacketsrequestHandler
- handle requeststimer
- handle timeouts if requests take too long to be processedsecretProvider
- lookup sharedSecret given remote addresspacketClass
- restrict RadiusPacket subtypes that can be processed by handler, otherwise will be dropped. If all types of RadiusPackets are allowed, useRadiusPacket
-
-
Method Detail
-
channelRead0
public void channelRead0(io.netty.channel.ChannelHandlerContext ctx, io.netty.channel.socket.DatagramPacket requestPacket)
- Specified by:
channelRead0
in classio.netty.channel.SimpleChannelInboundHandler<io.netty.channel.socket.DatagramPacket>
-
handleRequest
protected io.netty.util.concurrent.Future<io.netty.channel.socket.DatagramPacket> handleRequest(io.netty.channel.Channel channel, io.netty.channel.socket.DatagramPacket datagramPacket) throws RadiusException
Processes DatagramPacket. This does not swallow exceptions.- Parameters:
channel
- socket on which request was receiveddatagramPacket
- datagram received- Returns:
- Future that completes when request is handled. Can contain DatagramPacket response
- Throws:
RadiusException
- malformed packet
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-