001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements. See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership. The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing,
013 * software distributed under the License is distributed on an
014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015 * KIND, either express or implied. See the License for the
016 * specific language governing permissions and limitations
017 * under the License.
018 *
019 */
020 package org.apache.directory.server.kerberos.shared.messages.components;
021
022
023 import javax.security.auth.kerberos.KerberosPrincipal;
024
025 import org.apache.directory.server.kerberos.shared.messages.Encodable;
026 import org.apache.directory.server.kerberos.shared.messages.value.EncryptionKey;
027 import org.apache.directory.server.kerberos.shared.messages.value.HostAddresses;
028 import org.apache.directory.server.kerberos.shared.messages.value.KerberosTime;
029 import org.apache.directory.server.kerberos.shared.messages.value.LastRequest;
030 import org.apache.directory.server.kerberos.shared.messages.value.flags.TicketFlags;
031
032
033 /**
034 * Base class for encrypted parts of KDC responses.
035 *
036 * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
037 * @version $Rev: 591019 $, $Date: 2007-11-01 16:16:34 +0200 (Thu, 01 Nov 2007) $
038 */
039 public class EncKdcRepPart implements Encodable
040 {
041 private EncryptionKey key;
042 private LastRequest lastRequest;
043 private int nonce;
044 private KerberosTime keyExpiration; //optional
045 private TicketFlags flags = new TicketFlags();
046 private KerberosTime authTime;
047 private KerberosTime startTime; //optional
048 private KerberosTime endTime;
049 private KerberosTime renewTill; //optional
050 private KerberosPrincipal serverPrincipal;
051 private HostAddresses clientAddresses; //optional
052 private MessageComponentType componentType;
053
054
055 /**
056 * Creates a new instance of EncKdcRepPart.
057 */
058 public EncKdcRepPart()
059 {
060 // built up by setter during reply generation
061 }
062
063
064 /**
065 * Creates a new instance of EncKdcRepPart.
066 *
067 * @param key
068 * @param lastReq
069 * @param nonce
070 * @param keyExpiration
071 * @param flags
072 * @param authtime
073 * @param starttime
074 * @param endtime
075 * @param renewTill
076 * @param serverPrincipal
077 * @param caddr
078 * @param componentType
079 */
080 public EncKdcRepPart( EncryptionKey key, LastRequest lastReq, int nonce, KerberosTime keyExpiration,
081 TicketFlags flags, KerberosTime authtime, KerberosTime starttime, KerberosTime endtime, KerberosTime renewTill,
082 KerberosPrincipal serverPrincipal, HostAddresses caddr, MessageComponentType componentType )
083 {
084 this.key = key;
085 this.lastRequest = lastReq;
086 this.nonce = nonce;
087 this.keyExpiration = keyExpiration;
088 this.flags = flags;
089 this.authTime = authtime;
090 this.startTime = starttime;
091 this.endTime = endtime;
092 this.renewTill = renewTill;
093 this.serverPrincipal = serverPrincipal;
094 this.clientAddresses = caddr;
095 this.componentType = componentType;
096 }
097
098
099 /**
100 * Returns the auth {@link KerberosTime}.
101 *
102 * @return The auth {@link KerberosTime}.
103 */
104 public KerberosTime getAuthTime()
105 {
106 return authTime;
107 }
108
109
110 /**
111 * Returns the client {@link HostAddresses}.
112 *
113 * @return The client {@link HostAddresses}.
114 */
115 public HostAddresses getClientAddresses()
116 {
117 return clientAddresses;
118 }
119
120
121 /**
122 * Returns the end {@link KerberosTime}.
123 *
124 * @return The end {@link KerberosTime}.
125 */
126 public KerberosTime getEndTime()
127 {
128 return endTime;
129 }
130
131
132 /**
133 * Returns the {@link TicketFlags}.
134 *
135 * @return The {@link TicketFlags}.
136 */
137 public TicketFlags getFlags()
138 {
139 return flags;
140 }
141
142
143 /**
144 * Returns the {@link EncryptionKey}.
145 *
146 * @return The {@link EncryptionKey}.
147 */
148 public EncryptionKey getKey()
149 {
150 return key;
151 }
152
153
154 /**
155 * Returns the key expiration {@link KerberosTime}.
156 *
157 * @return The key expiration {@link KerberosTime}.
158 */
159 public KerberosTime getKeyExpiration()
160 {
161 return keyExpiration;
162 }
163
164
165 /**
166 * Returns the {@link LastRequest}.
167 *
168 * @return The {@link LastRequest}.
169 */
170 public LastRequest getLastRequest()
171 {
172 return lastRequest;
173 }
174
175
176 /**
177 * Returns the nonce.
178 *
179 * @return The nonce.
180 */
181 public int getNonce()
182 {
183 return nonce;
184 }
185
186
187 /**
188 * Returns the renew till {@link KerberosTime}.
189 *
190 * @return The renew till {@link KerberosTime}.
191 */
192 public KerberosTime getRenewTill()
193 {
194 return renewTill;
195 }
196
197
198 /**
199 * Returns the server {@link KerberosPrincipal}.
200 *
201 * @return The server {@link KerberosPrincipal}.
202 */
203 public KerberosPrincipal getServerPrincipal()
204 {
205 return serverPrincipal;
206 }
207
208
209 /**
210 * Returns the server realm.
211 *
212 * @return The server realm.
213 */
214 public String getServerRealm()
215 {
216 return serverPrincipal.getRealm();
217 }
218
219
220 /**
221 * Returns the start {@link KerberosTime}.
222 *
223 * @return The start {@link KerberosTime}.
224 */
225 public KerberosTime getStartTime()
226 {
227 return startTime;
228 }
229
230
231 /**
232 * Returns the {@link MessageComponentType}.
233 *
234 * @return The {@link MessageComponentType}.
235 */
236 public MessageComponentType getComponentType()
237 {
238 return componentType;
239 }
240
241
242 /**
243 * Sets the auth {@link KerberosTime}.
244 *
245 * @param time
246 */
247 public void setAuthTime( KerberosTime time )
248 {
249 authTime = time;
250 }
251
252
253 /**
254 * Sets the client {@link HostAddresses}.
255 *
256 * @param addresses
257 */
258 public void setClientAddresses( HostAddresses addresses )
259 {
260 clientAddresses = addresses;
261 }
262
263
264 /**
265 * Sets the end {@link KerberosTime}.
266 *
267 * @param time
268 */
269 public void setEndTime( KerberosTime time )
270 {
271 endTime = time;
272 }
273
274
275 /**
276 * Sets the {@link TicketFlags}.
277 *
278 * @param flags
279 */
280 public void setFlags( TicketFlags flags )
281 {
282 this.flags = flags;
283 }
284
285
286 /**
287 * Sets the {@link EncryptionKey}.
288 *
289 * @param key
290 */
291 public void setKey( EncryptionKey key )
292 {
293 this.key = key;
294 }
295
296
297 /**
298 * Sets the key expiration {@link KerberosTime}.
299 *
300 * @param expiration
301 */
302 public void setKeyExpiration( KerberosTime expiration )
303 {
304 keyExpiration = expiration;
305 }
306
307
308 /**
309 * Sets the {@link LastRequest}.
310 *
311 * @param request
312 */
313 public void setLastRequest( LastRequest request )
314 {
315 lastRequest = request;
316 }
317
318
319 /**
320 * Sets the nonce.
321 *
322 * @param nonce
323 */
324 public void setNonce( int nonce )
325 {
326 this.nonce = nonce;
327 }
328
329
330 /**
331 * Sets the renew till {@link KerberosTime}.
332 *
333 * @param till
334 */
335 public void setRenewTill( KerberosTime till )
336 {
337 renewTill = till;
338 }
339
340
341 /**
342 * Sets the server {@link KerberosPrincipal}.
343 *
344 * @param principal
345 */
346 public void setServerPrincipal( KerberosPrincipal principal )
347 {
348 serverPrincipal = principal;
349 }
350
351
352 /**
353 * Sets the start {@link KerberosTime}.
354 *
355 * @param time
356 */
357 public void setStartTime( KerberosTime time )
358 {
359 startTime = time;
360 }
361 }