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.value;
021
022
023 import java.util.Set;
024
025 import javax.security.auth.kerberos.KerberosPrincipal;
026
027 import org.apache.directory.server.kerberos.shared.crypto.encryption.EncryptionType;
028 import org.apache.directory.server.kerberos.shared.messages.components.Ticket;
029
030
031 /**
032 * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
033 * @version $Rev: 590715 $, $Date: 2007-10-31 17:23:32 +0200 (Wed, 31 Oct 2007) $
034 */
035 public class RequestBody
036 {
037 private KdcOptions kdcOptions;
038 private KerberosPrincipal clientPrincipal; //optional in TgsReq only
039 private KerberosPrincipal serverPrincipal;
040 private KerberosTime from; //optional
041 private KerberosTime till;
042 private KerberosTime rtime; //optional
043 private int nonce;
044 private Set<EncryptionType> eType;
045 private HostAddresses addresses; //optional
046 private EncryptedData encAuthorizationData; //optional
047 private Ticket[] additionalTickets; //optional
048
049
050 /**
051 * Creates a new instance of RequestBody.
052 *
053 * @param kdcOptions
054 * @param clientPrincipal
055 * @param serverPrincipal
056 * @param from
057 * @param till
058 * @param rtime
059 * @param nonce
060 * @param eType
061 * @param addresses
062 * @param encAuthorizationData
063 * @param additionalTickets
064 */
065 public RequestBody( KdcOptions kdcOptions, KerberosPrincipal clientPrincipal, KerberosPrincipal serverPrincipal,
066 KerberosTime from, KerberosTime till, KerberosTime rtime, int nonce, Set<EncryptionType> eType,
067 HostAddresses addresses, EncryptedData encAuthorizationData, Ticket[] additionalTickets )
068 {
069 this.kdcOptions = kdcOptions;
070 this.clientPrincipal = clientPrincipal;
071 this.serverPrincipal = serverPrincipal;
072 this.from = from;
073 this.till = till;
074 this.rtime = rtime;
075 this.nonce = nonce;
076 this.eType = eType;
077 this.addresses = addresses;
078 this.encAuthorizationData = encAuthorizationData;
079 this.additionalTickets = additionalTickets;
080 }
081
082
083 /**
084 * Returns the additional {@link Ticket}s.
085 *
086 * @return The additional {@link Ticket}s.
087 */
088 public Ticket[] getAdditionalTickets()
089 {
090 return additionalTickets;
091 }
092
093
094 /**
095 * Returns the {@link HostAddresses}.
096 *
097 * @return The {@link HostAddresses}.
098 */
099 public HostAddresses getAddresses()
100 {
101 return addresses;
102 }
103
104
105 /**
106 * Returns the client {@link KerberosPrincipal}.
107 *
108 * @return The client {@link KerberosPrincipal}.
109 */
110 public KerberosPrincipal getClientPrincipal()
111 {
112 return clientPrincipal;
113 }
114
115
116 /**
117 * Returns the server {@link KerberosPrincipal}.
118 *
119 * @return The server {@link KerberosPrincipal}.
120 */
121 public KerberosPrincipal getServerPrincipal()
122 {
123 return serverPrincipal;
124 }
125
126
127 /**
128 * Returns the encrypted {@link AuthorizationData} as {@link EncryptedData}.
129 *
130 * @return The encrypted {@link AuthorizationData} as {@link EncryptedData}.
131 */
132 public EncryptedData getEncAuthorizationData()
133 {
134 return encAuthorizationData;
135 }
136
137
138 /**
139 * Returns the requested {@link EncryptionType}s.
140 *
141 * @return The requested {@link EncryptionType}s.
142 */
143 public Set<EncryptionType> getEType()
144 {
145 return eType;
146 }
147
148
149 /**
150 * Returns the from {@link KerberosTime}.
151 *
152 * @return The from {@link KerberosTime}.
153 */
154 public KerberosTime getFrom()
155 {
156 return from;
157 }
158
159
160 /**
161 * Returns the {@link KdcOptions}.
162 *
163 * @return The {@link KdcOptions}.
164 */
165 public KdcOptions getKdcOptions()
166 {
167 return kdcOptions;
168 }
169
170
171 /**
172 * Returns the nonce.
173 *
174 * @return The nonce.
175 */
176 public int getNonce()
177 {
178 return nonce;
179 }
180
181
182 /**
183 * Returns the "R" {@link KerberosTime}.
184 *
185 * @return The "R" {@link KerberosTime}.
186 */
187 public KerberosTime getRtime()
188 {
189 return rtime;
190 }
191
192
193 /**
194 * Returns the till {@link KerberosTime}.
195 *
196 * @return The till {@link KerberosTime}.
197 */
198 public KerberosTime getTill()
199 {
200 return till;
201 }
202 }