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.types; 021 022 023 /** 024 * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a> 025 * @version $Rev: 540371 $, $Date: 2007-05-22 02:00:43 +0200 (Tue, 22 May 2007) $ 026 */ 027 public enum AuthorizationType 028 { 029 /** 030 * Constant for the "null" authorization type. 031 */ 032 NULL( 0 ), 033 034 /** 035 * Constant for the "if relevant" authorization type. 036 * 037 * RFC 4120 038 */ 039 AD_IF_RELEVANT( 1 ), 040 041 /** 042 * Constant for the "intended for server" authorization type. 043 * 044 * RFC 4120 045 */ 046 AD_INTENDED_FOR_SERVER( 2 ), 047 048 /** 049 * Constant for the "intended for application class" authorization type. 050 * 051 * RFC 4120 052 */ 053 AD_INTENDED_FOR_APPLICATION_CLASS( 3 ), 054 055 /** 056 * Constant for the "kdc issued" authorization type. 057 * 058 * RFC 4120 059 */ 060 AD_KDC_ISSUED( 4 ), 061 062 /** 063 * Constant for the "or" authorization type. 064 * 065 * RFC 4120 066 */ 067 AD_OR( 5 ), 068 069 /** 070 * Constant for the "mandatory ticket extensions" authorization type. 071 * 072 * RFC 4120 073 */ 074 AD_MANDATORY_TICKET_EXTENSIONS( 6 ), 075 076 /** 077 * Constant for the "in ticket extensions" authorization type. 078 * 079 * RFC 4120 080 */ 081 AD_IN_TICKET_EXTENSIONS( 7 ), 082 083 /** 084 * Constant for the "mandatory-for-kdc" authorization type. 085 * 086 * RFC 4120 087 */ 088 AD_MANDATORY_FOR_KDC( 8 ), 089 090 /** 091 * Constant for the "OSF DCE" authorization type. 092 * 093 * RFC 1510 094 */ 095 OSF_DCE( 64 ), 096 097 /** 098 * Constant for the "sesame" authorization type. 099 * 100 * RFC 1510 101 */ 102 SESAME( 65 ), 103 104 /** 105 * Constant for the "OSF-DCE pki certid" authorization type. 106 * 107 * RFC 1510 108 */ 109 AD_OSF_DCE_PKI_CERTID( 66 ), 110 111 /** 112 * Constant for the "sesame" authorization type. 113 * 114 * RFC 1510 115 */ 116 AD_WIN2K_PAC( 128 ), 117 118 /** 119 * Constant for the "sesame" authorization type. 120 * 121 * RFC 1510 122 */ 123 AD_ETYPE_NEGOTIATION( 129 ); 124 125 126 /** 127 * The value/code for the authorization type. 128 */ 129 private final int ordinal; 130 131 132 /** 133 * Private constructor prevents construction outside of this class. 134 */ 135 private AuthorizationType( int ordinal ) 136 { 137 this.ordinal = ordinal; 138 } 139 140 141 /** 142 * Returns the authorization type when specified by its ordinal. 143 * 144 * @param type 145 * @return The authorization type. 146 */ 147 public static AuthorizationType getTypeByOrdinal( int type ) 148 { 149 switch ( type ) 150 { 151 case 1 : return AD_IF_RELEVANT; 152 case 2 : return AD_INTENDED_FOR_SERVER; 153 case 3 : return AD_INTENDED_FOR_APPLICATION_CLASS; 154 case 4 : return AD_KDC_ISSUED; 155 case 5 : return AD_OR; 156 case 6 : return AD_MANDATORY_TICKET_EXTENSIONS; 157 case 7 : return AD_IN_TICKET_EXTENSIONS; 158 case 8 : return AD_MANDATORY_FOR_KDC; 159 case 64 : return OSF_DCE; 160 case 65 : return SESAME; 161 case 66 : return AD_OSF_DCE_PKI_CERTID; 162 case 128 : return AD_WIN2K_PAC; 163 case 129 : return AD_ETYPE_NEGOTIATION; 164 default : return NULL; 165 } 166 } 167 168 169 /** 170 * Returns the number associated with this authorization type. 171 * 172 * @return The authorization type ordinal. 173 */ 174 public int getOrdinal() 175 { 176 return ordinal; 177 } 178 179 /** 180 * @see Object#toString() 181 */ 182 public String toString() 183 { 184 switch ( this ) 185 { 186 case AD_IF_RELEVANT : 187 return "if relevant" + "(" + ordinal + ")"; 188 189 case AD_INTENDED_FOR_SERVER : 190 return "intended for server" + "(" + ordinal + ")"; 191 192 case AD_INTENDED_FOR_APPLICATION_CLASS : 193 return "intended for application class" + "(" + ordinal + ")"; 194 195 case AD_KDC_ISSUED : 196 return "kdc issued" + "(" + ordinal + ")"; 197 198 case AD_OR : 199 return "or" + "(" + ordinal + ")"; 200 201 case AD_MANDATORY_TICKET_EXTENSIONS : 202 return "mandatory ticket extensions" + "(" + ordinal + ")"; 203 204 case AD_IN_TICKET_EXTENSIONS : 205 return "in ticket extensions" + "(" + ordinal + ")"; 206 207 case AD_MANDATORY_FOR_KDC : 208 return "mandatory-for-kdc" + "(" + ordinal + ")"; 209 210 case OSF_DCE : 211 return "OSF DCE" + "(" + ordinal + ")"; 212 213 case SESAME : 214 return "sesame" + "(" + ordinal + ")"; 215 216 case AD_OSF_DCE_PKI_CERTID : 217 return "OSF DCE pki certid" + "(" + ordinal + ")"; 218 219 case AD_WIN2K_PAC : 220 return "win 2000 PAC" + "(" + ordinal + ")"; 221 222 case AD_ETYPE_NEGOTIATION : 223 return "etype negociation" + "(" + ordinal + ")"; 224 225 default : 226 return "null" + "(" + ordinal + ")"; 227 } 228 } 229 }