1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.directory.server.kerberos.protocol;
21
22
23 import java.io.IOException;
24
25 import org.apache.directory.server.kerberos.shared.io.encoder.ErrorMessageEncoder;
26 import org.apache.directory.server.kerberos.shared.io.encoder.KdcReplyEncoder;
27 import org.apache.directory.server.kerberos.shared.messages.ErrorMessage;
28 import org.apache.directory.server.kerberos.shared.messages.KdcReply;
29 import org.apache.mina.common.ByteBuffer;
30 import org.apache.mina.common.IoSession;
31 import org.apache.mina.filter.codec.ProtocolEncoderAdapter;
32 import org.apache.mina.filter.codec.ProtocolEncoderOutput;
33
34
35
36
37
38
39 public class KerberosUdpEncoder extends ProtocolEncoderAdapter
40 {
41 private KdcReplyEncoder replyEncoder = new KdcReplyEncoder();
42 private ErrorMessageEncoder errorEncoder = new ErrorMessageEncoder();
43
44
45 public void encode( IoSession session, Object message, ProtocolEncoderOutput out ) throws IOException
46 {
47 ByteBuffer buf = ByteBuffer.allocate( 1024 );
48
49 if ( message instanceof KdcReply )
50 {
51 replyEncoder.encode( ( KdcReply ) message, buf.buf() );
52 }
53 else
54 {
55 if ( message instanceof ErrorMessage )
56 {
57 errorEncoder.encode( ( ErrorMessage ) message, buf.buf() );
58 }
59 }
60
61 buf.flip();
62
63 out.write( buf );
64 }
65 }