[serf] r2499 committed - Pass SCHEME argument to all auth plugins callbacks....

11 views
Skip to first unread message

se...@googlecode.com

unread,
Apr 11, 2015, 9:31:14 AM4/11/15
to serf...@googlegroups.com
Revision: 2499
Author: chemodax
Date: Sat Apr 11 13:30:50 2015 UTC
Log: Pass SCHEME argument to all auth plugins callbacks.

* auth/auth.c
(handle_auth_headers, serf__auth_setup_request): Pass SCHEME to
HANDLE_FUNC and SETUP_REQUEST_FUNC.

* auth/auth.h
(serf__auth_handler_func_t, serf__setup_request_func_t): Add SCHEME
parameter.

* auth/auth_basic.c
(serf__handle_basic_auth): Use provided SCHEME instead of
AUTHN_INFO->SCHEME.
(serf__setup_request_basic_auth): Add SCHEME argument.

* auth/auth_digest.c
(serf__handle_digest_auth): Use provided SCHEME instead of
AUTHN_INFO->SCHEME.
(serf__setup_request_digest_auth): Add SCHEME argument.

* auth/auth_spnego.c
(do_auth): Use provided SCHEME instead of AUTHN_INFO->SCHEME.
(serf__handle_spnego_auth, serf__setup_request_spnego_auth,
serf__validate_response_spnego_auth): Add SCHEME argument and pass
it to do_auth() call.

https://code.google.com/p/serf/source/detail?r=2499

Modified:
/trunk/auth/auth.c
/trunk/auth/auth.h
/trunk/auth/auth_basic.c
/trunk/auth/auth_digest.c
/trunk/auth/auth_spnego.c

=======================================
--- /trunk/auth/auth.c Wed Apr 8 18:43:35 2015 UTC
+++ /trunk/auth/auth.c Sat Apr 11 13:30:50 2015 UTC
@@ -140,7 +140,7 @@
auth_attr++;
}

- status = handler(code, request, response,
+ status = handler(scheme, code, request, response,
auth_hdr, auth_attr, ctx->pool);
}

@@ -467,12 +467,14 @@
const char *uri,
serf_bucket_t *hdrs_bkt)
{
+
if (peer == PROXY && request->conn->ctx->proxy_authn_info.scheme) {
- request->conn->ctx->proxy_authn_info.scheme->setup_request_func(
- peer, 0,
- request->conn,
request,
- method, uri,
- hdrs_bkt);
+ serf__authn_info_t *authn_info =
&request->conn->ctx->proxy_authn_info;
+ authn_info->scheme->setup_request_func(authn_info->scheme,
+ peer, 0,
+ request->conn, request,
+ method, uri,
+ hdrs_bkt);
}
else if (peer == HOST)
{
@@ -480,7 +482,8 @@

authn_info = serf__get_authn_info_for_server(request->conn);
if (authn_info->scheme) {
- authn_info->scheme->setup_request_func(HOST, 0, request->conn,
+ authn_info->scheme->setup_request_func(authn_info->scheme,
+ HOST, 0, request->conn,
request, method, uri,
hdrs_bkt);
}
=======================================
--- /trunk/auth/auth.h Wed Apr 8 18:38:47 2015 UTC
+++ /trunk/auth/auth.h Sat Apr 11 13:30:50 2015 UTC
@@ -28,7 +28,8 @@
* authentication challenge is received in a session.
*/
typedef apr_status_t
-(*serf__auth_handler_func_t)(int code,
+(*serf__auth_handler_func_t)(const serf__authn_scheme_t *scheme,
+ int code,
serf_request_t *request,
serf_bucket_t *response,
const char *auth_hdr,
@@ -53,7 +54,8 @@
* authentication headers (if needed).
*/
typedef apr_status_t
-(*serf__setup_request_func_t)(peer_t peer,
+(*serf__setup_request_func_t)(const serf__authn_scheme_t *scheme,
+ peer_t peer,
int code,
serf_connection_t *conn,
serf_request_t *request,
=======================================
--- /trunk/auth/auth_basic.c Fri Apr 10 14:05:14 2015 UTC
+++ /trunk/auth/auth_basic.c Sat Apr 11 13:30:50 2015 UTC
@@ -32,7 +32,8 @@

/* Implements serf__auth_handler_func_t callback. */
static apr_status_t
-serf__handle_basic_auth(int code,
+serf__handle_basic_auth(const serf__authn_scheme_t *scheme,
+ int code,
serf_request_t *request,
serf_bucket_t *response,
const char *auth_hdr,
@@ -92,7 +93,7 @@
status = serf__provide_credentials(ctx,
&username, &password,
request,
- code, authn_info->scheme->name,
+ code, scheme->name,
realm, cred_pool);
if (status) {
apr_pool_destroy(cred_pool);
@@ -104,7 +105,7 @@
apr_pool_destroy(cred_pool);

serf__encode_auth_header(&basic_info->value,
- authn_info->scheme->name,
+ scheme->name,
tmp, tmp_len, pool);
basic_info->header = (code ==
401) ? "Authorization" : "Proxy-Authorization";

@@ -142,7 +143,8 @@

/* Implements serf__setup_request_func_t callback. */
static apr_status_t
-serf__setup_request_basic_auth(peer_t peer,
+serf__setup_request_basic_auth(const serf__authn_scheme_t *scheme,
+ peer_t peer,
int code,
serf_connection_t *conn,
serf_request_t *request,
=======================================
--- /trunk/auth/auth_digest.c Fri Apr 10 14:05:14 2015 UTC
+++ /trunk/auth/auth_digest.c Sat Apr 11 13:30:50 2015 UTC
@@ -229,7 +229,8 @@

/* Implements serf__auth_handler_func_t callback. */
static apr_status_t
-serf__handle_digest_auth(int code,
+serf__handle_digest_auth(const serf__authn_scheme_t *scheme,
+ int code,
serf_request_t *request,
serf_bucket_t *response,
const char *auth_hdr,
@@ -321,7 +322,7 @@
status = serf__provide_credentials(ctx,
&username, &password,
request,
- code, authn_info->scheme->name,
+ code, scheme->name,
realm, cred_pool);
if (status) {
apr_pool_destroy(cred_pool);
@@ -387,7 +388,8 @@

/* Implements serf__setup_request_func_t callback. */
static apr_status_t
-serf__setup_request_digest_auth(peer_t peer,
+serf__setup_request_digest_auth(const serf__authn_scheme_t *scheme,
+ peer_t peer,
int code,
serf_connection_t *conn,
serf_request_t *request,
=======================================
--- /trunk/auth/auth_spnego.c Fri Apr 10 14:05:14 2015 UTC
+++ /trunk/auth/auth_spnego.c Sat Apr 11 13:30:50 2015 UTC
@@ -246,7 +246,8 @@
code and use the resulting Server Ticket on the next request to the
server. */
static apr_status_t
-do_auth(peer_t peer,
+do_auth(const serf__authn_scheme_t *scheme,
+ peer_t peer,
int code,
gss_authn_info_t *gss_info,
serf_connection_t *conn,
@@ -347,7 +348,7 @@

/* On the next request, add an Authorization header. */
if (tmp_len) {
- serf__encode_auth_header(&gss_info->value,
authn_info->scheme->name,
+ serf__encode_auth_header(&gss_info->value, scheme->name,
tmp,
tmp_len,
pool);
@@ -406,7 +407,8 @@
/* Implements serf__auth_handler_func_t callback.
A 40x response was received, handle the authentication. */
static apr_status_t
-serf__handle_spnego_auth(int code,
+serf__handle_spnego_auth(const serf__authn_scheme_t *scheme,
+ int code,
serf_request_t *request,
serf_bucket_t *response,
const char *auth_hdr,
@@ -418,7 +420,8 @@
gss_authn_info_t *gss_info = (code == 401) ? conn->authn_info.baton :

ctx->proxy_authn_info.baton;

- return do_auth(code == 401 ? HOST : PROXY,
+ return do_auth(scheme,
+ code == 401 ? HOST : PROXY,
code,
gss_info,
request->conn,
@@ -430,7 +433,8 @@
/* Callback function (implements serf__setup_request_func_t). Setup the
authn
headers on this request message. */
static apr_status_t
-serf__setup_request_spnego_auth(peer_t peer,
+serf__setup_request_spnego_auth(const serf__authn_scheme_t *scheme,
+ peer_t peer,
int code,
serf_connection_t *conn,
serf_request_t *request,
@@ -490,7 +494,8 @@
serf__log(LOGLVL_DEBUG, LOGCOMP_AUTHN, __FILE__,
conn->config,
"Add initial Negotiate header to request.\n");

- status = do_auth(peer,
+ status = do_auth(scheme,
+ peer,
code,
gss_info,
conn,
@@ -606,8 +611,8 @@
pool);

if (auth_hdr_val) {
- status = do_auth(peer, code, gss_info, conn, request,
auth_hdr_val,
- pool);
+ status = do_auth(scheme, peer, code, gss_info, conn, request,
+ auth_hdr_val, pool);
if (status) {
return status;
}
Reply all
Reply to author
Forward
0 new messages