+ int krb_method_gssapi;
+ int krb_method_k5pass;
+#endif
+#ifdef KRB4
+ char *krb_4_srvtab;
+ int krb_method_k4pass;
+#endif
+} kerb_auth_config;
+
+#ifdef APXS1
+static const command_rec kerb_auth_cmds[] = {
+ { "AuthKerberos", ap_set_flag_slot,
+ (void*)XtOffsetOf(kerb_auth_config, krb_auth_enable),
+ OR_AUTHCFG, FLAG, "Permit Kerberos auth without AuthType requirement." },
+
+ { "KrbAuthRealm", ap_set_string_slot,
+ (void*)XtOffsetOf(kerb_auth_config, krb_auth_realms),
+ OR_AUTHCFG, ITERATE, "Realms to attempt authentication against (can be multiple)." },
+
+ { "KrbAuthRealms", ap_set_string_slot,
+ (void*)XtOffsetOf(kerb_auth_config, krb_auth_realms),
+ OR_AUTHCFG, ITERATE, "Alias for KrbAuthRealm." },
+
+#if 0
+ { "KrbFailStatus", kerb_set_fail_slot,
+ (void*)XtOffsetOf(kerb_auth_config, krb_fail_status),
+ OR_AUTHCFG, TAKE1, "If auth fails, return status set here." },
+#endif
+
+ { "KrbForceInstance", ap_set_string_slot,
+ (void*)XtOffsetOf(kerb_auth_config, krb_force_instance),
+ OR_AUTHCFG, TAKE1, "Force authentication against an instance specified here." },
+
+ { "KrbSaveCredentials", ap_set_flag_slot,
+ (void*)XtOffsetOf(kerb_auth_config, krb_save_credentials),
+ OR_AUTHCFG, FLAG, "Save and store credentials/tickets retrieved during auth." },
+
+ { "KrbSaveTickets", ap_set_flag_slot,
+ (void*)XtOffsetOf(kerb_auth_config, krb_save_credentials),
+ OR_AUTHCFG, FLAG, "Alias for KrbSaveCredentials." },
+
+ { "KrbTmpdir", ap_set_string_slot,
+ (void*)XtOffsetOf(kerb_auth_config, krb_tmp_dir),
+ OR_AUTHCFG, TAKE1, "Path to store ticket files and such in." },
+
+ { "KrbServiceName", ap_set_string_slot,
+ (void*)XtOffsetOf(kerb_auth_config, service_name),
+ OR_AUTHCFG, TAKE1, "Kerberos service name to be used by apache." },
+
+#if 0
+ { "KrbLifetime", ap_set_string_slot,
+ (void*)XtOffsetOf(kerb_auth_config, krb_lifetime),
+ OR_AUTHCFG, TAKE1, "Kerberos ticket lifetime." },
+#endif
+
+#ifdef KRB5
+ { "Krb5Keytab", ap_set_file_slot,
+ (void*)XtOffsetOf(kerb_auth_config, krb_5_keytab),
+ OR_AUTHCFG, TAKE1, "Location of Kerberos V5 keytab file." },
+
+ { "KrbForwardable", ap_set_flag_slot,
+ (void*)XtOffsetOf(kerb_auth_config, krb_forwardable),
+ OR_AUTHCFG, FLAG, "Credentials retrieved will be flagged as forwardable."},
+
+ { "KrbMethodGSSAPI", ap_set_flag_slot,
+ (void*)XtOffsetOf(kerb_auth_config, krb_method_gssapi),
+ OR_AUTHCFG, FLAG, "Enable GSSAPI authentication." },
+
+ { "KrbMethodK5Pass", ap_set_flag_slot,
+ (void*)XtOffsetOf(kerb_auth_config, krb_method_k5pass),
+ OR_AUTHCFG, FLAG, "Enable Kerberos V5 password authentication." },
+#endif
+
+#ifdef KRB4
+ { "Krb4Srvtab", ap_set_file_slot,
+ (void*)XtOffsetOf(kerb_auth_config, krb_4_srvtab),
+ OR_AUTHCFG, TAKE1, "Location of Kerberos V4 srvtab file." },
+
+ { "KrbMethodK4Pass", ap_set_flag_slot,
+ (void*)XtOffsetOf(kerb_auth_config, krb_method_k4pass),
+ OR_AUTHCFG, FLAG, "Enable Kerberos V4 password authentication." },
+#endif
+
+ { NULL }
+};
+#else
+static const command_rec kerb_auth_cmds[] = {
+ AP_INIT_FLAG("AuthKerberos", ap_set_flag_slot,
+ (void*)APR_XtOffsetOf(kerb_auth_config, krb_auth_enable),
+ OR_AUTHCFG, "Permit Kerberos auth without AuthType requirement."),
+
+
+
+#ifdef KRB4
+ AP_INIT_TAKE1("Krb4Srvtab", ap_set_file_slot,
+ (void*)APR_XtOffsetOf(kerb_auth_config, krb_4_srvtab),
+ OR_AUTHCFG, "Location of Kerberos V4 srvtab file."),
+#endif /* KRB4 */
+
+#ifdef KRB5
+ AP_INIT_TAKE1("Krb5Keytab", ap_set_file_slot,
+ (void*)APR_XtOffsetOf(kerb_auth_config, krb_5_keytab),
+ OR_AUTHCFG, "Location of Kerberos V5 keytab file."),