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 RequestBodyModifier
036 {
037 private KerberosPrincipalModifier clientModifier = new KerberosPrincipalModifier(); //optional in TgsReq only
038 private KerberosPrincipalModifier serverModifier = new KerberosPrincipalModifier();
039 private KdcOptions kdcOptions;
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 * Returns the {@link RequestBody}.
052 *
053 * @return The {@link RequestBody}.
054 */
055 public RequestBody getRequestBody()
056 {
057 KerberosPrincipal clientPrincipal = clientModifier.getKerberosPrincipal();
058 KerberosPrincipal serverPrincipal = serverModifier.getKerberosPrincipal();
059
060 return new RequestBody( kdcOptions, clientPrincipal, serverPrincipal, from, till, rtime, nonce, eType,
061 addresses, encAuthorizationData, additionalTickets );
062 }
063
064
065 /**
066 * Sets the client {@link PrincipalName}.
067 *
068 * @param clientName
069 */
070 public void setClientName( PrincipalName clientName )
071 {
072 clientModifier.setPrincipalName( clientName );
073 }
074
075
076 /**
077 * Sets the server {@link PrincipalName}.
078 *
079 * @param serverName
080 */
081 public void setServerName( PrincipalName serverName )
082 {
083 serverModifier.setPrincipalName( serverName );
084 }
085
086
087 /**
088 * Sets the realm.
089 *
090 * @param realm
091 */
092 public void setRealm( String realm )
093 {
094 clientModifier.setRealm( realm );
095 serverModifier.setRealm( realm );
096 }
097
098
099 /**
100 * Sets additional {@link Ticket}s.
101 *
102 * @param tickets
103 */
104 public void setAdditionalTickets( Ticket[] tickets )
105 {
106 additionalTickets = tickets;
107 }
108
109
110 /**
111 * Sets the {@link HostAddresses}.
112 *
113 * @param addresses
114 */
115 public void setAddresses( HostAddresses addresses )
116 {
117 this.addresses = addresses;
118 }
119
120
121 /**
122 * Sets the encrypted authorization data.
123 *
124 * @param authorizationData
125 */
126 public void setEncAuthorizationData( EncryptedData authorizationData )
127 {
128 encAuthorizationData = authorizationData;
129 }
130
131
132 /**
133 * Sets the requested {@link EncryptionType}s.
134 *
135 * @param type
136 */
137 public void setEType( Set<EncryptionType> type )
138 {
139 eType = type;
140 }
141
142
143 /**
144 * Sets the from {@link KerberosTime}.
145 *
146 * @param from
147 */
148 public void setFrom( KerberosTime from )
149 {
150 this.from = from;
151 }
152
153
154 /**
155 * Sets the {@link KdcOptions}.
156 *
157 * @param options
158 */
159 public void setKdcOptions( KdcOptions options )
160 {
161 kdcOptions = options;
162 }
163
164
165 /**
166 * Sets the nonce.
167 *
168 * @param nonce
169 */
170 public void setNonce( int nonce )
171 {
172 this.nonce = nonce;
173 }
174
175
176 /**
177 * Sets the "R" {@link KerberosTime}.
178 *
179 * @param rtime
180 */
181 public void setRtime( KerberosTime rtime )
182 {
183 this.rtime = rtime;
184 }
185
186
187 /**
188 * Sets the till {@link KerberosTime}.
189 *
190 * @param till
191 */
192 public void setTill( KerberosTime till )
193 {
194 this.till = till;
195 }
196 }