1 static const char *kerb_set_fail_slot(cmd_parms *cmd, void *struct_ptr,
4 int offset = (int) (long) cmd->info;
5 if (!strncasecmp(arg, "unauthorized", 12))
6 *(int *) ((char *)struct_ptr + offset) = HTTP_UNAUTHORIZED;
7 else if (!strncasecmp(arg, "forbidden", 9))
8 *(int *) ((char *)struct_ptr + offset) = HTTP_FORBIDDEN;
9 else if (!strncasecmp(arg, "declined", 8))
10 *(int *) ((char *)struct_ptr + offset) = DECLINED;
12 return apr_pstrcat(cmd->pool, "KrbAuthFailStatus must be Forbidden, Unauthorized, or Declined.", NULL);
16 static const char *kerb_set_type_slot(cmd_parms *cmd, void *struct_ptr,
19 int offset = (int) (long) cmd->info;
22 (!strncasecmp(arg, "v5", 2))
23 *(char **) ((char *)struct_ptr + offset) = apr_pstrdup(cmd->pool, "KerberosV5");
27 (!strncasecmp(arg, "v4", 2))
28 *(char **) ((char *)struct_ptr + offset) = apr_pstrdup(cmd->pool, "KerberosV4");
30 #if defined(KRB5) && defined(KRB4)
32 (!strncasecmp(arg, "dualv5v4", 8))
33 *(char **) ((char *)struct_ptr + offset) = apr_pstrdup(cmd->pool, "KerberosDualV5V4");
35 (!strncasecmp(arg, "dualv4v5", 8))
36 *(char **) ((char *)struct_ptr + offset) = apr_pstrdup(cmd->pool, "KerberosDualV4V5");
37 #endif /* KRB5 && KRB4 */
39 return "AuthKerberos must be V5, V4, DualV4V5, or DualV5V4.";
43 static const command_rec kerb_auth_cmds[] = {
47 (void*)APR_XtOffsetOf(kerb_auth_config, krb_auth_type),
49 "Permit Kerberos auth without AuthType requirement."
55 (void*)APR_XtOffsetOf(kerb_auth_config, krb_fail_status),
57 "If auth fails, return status set here."
63 (void*)APR_XtOffsetOf(kerb_auth_config, krb_authoritative),
65 "Refuse to pass request down to lower modules."