1 /* Copyright 2009 Justin Erenkrantz and Greg Stein
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
7 * http://www.apache.org/licenses/LICENSE-2.0
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
19 #include "auth_spnego.h"
25 void serf__encode_auth_header(const char **header, const char *protocol,
26 const char *data, apr_size_t data_len,
29 /* Prefixes the realm_name with a string containing scheme, hostname and port
30 of the connection, for providing it to the application. */
31 const char *serf__construct_realm(peer_t peer,
32 serf_connection_t *conn,
33 const char *realm_name,
36 /** Basic authentication **/
37 apr_status_t serf__init_basic(int code,
40 apr_status_t serf__init_basic_connection(const serf__authn_scheme_t *scheme,
42 serf_connection_t *conn,
44 apr_status_t serf__handle_basic_auth(int code,
45 serf_request_t *request,
46 serf_bucket_t *response,
48 const char *auth_attr,
51 apr_status_t serf__setup_request_basic_auth(peer_t peer,
53 serf_connection_t *conn,
54 serf_request_t *request,
57 serf_bucket_t *hdrs_bkt);
59 /** Digest authentication **/
60 apr_status_t serf__init_digest(int code,
63 apr_status_t serf__init_digest_connection(const serf__authn_scheme_t *scheme,
65 serf_connection_t *conn,
67 apr_status_t serf__handle_digest_auth(int code,
68 serf_request_t *request,
69 serf_bucket_t *response,
71 const char *auth_attr,
74 apr_status_t serf__setup_request_digest_auth(peer_t peer,
76 serf_connection_t *conn,
77 serf_request_t *request,
80 serf_bucket_t *hdrs_bkt);
81 apr_status_t serf__validate_response_digest_auth(const serf__authn_scheme_t *scheme,
84 serf_connection_t *conn,
85 serf_request_t *request,
86 serf_bucket_t *response,
89 #ifdef SERF_HAVE_SPNEGO
90 /** Kerberos authentication **/
91 apr_status_t serf__init_spnego(int code,
94 apr_status_t serf__init_spnego_connection(const serf__authn_scheme_t *scheme,
96 serf_connection_t *conn,
98 apr_status_t serf__handle_spnego_auth(int code,
99 serf_request_t *request,
100 serf_bucket_t *response,
101 const char *auth_hdr,
102 const char *auth_attr,
105 apr_status_t serf__setup_request_spnego_auth(peer_t peer,
107 serf_connection_t *conn,
108 serf_request_t *request,
111 serf_bucket_t *hdrs_bkt);
112 apr_status_t serf__validate_response_spnego_auth(const serf__authn_scheme_t *scheme,
115 serf_connection_t *conn,
116 serf_request_t *request,
117 serf_bucket_t *response,
119 #endif /* SERF_HAVE_SPNEGO */