Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
KHTTPBASIC_VALIDATE(3) FreeBSD Library Functions Manual	KHTTPBASIC_VALIDATE(3)

NAME
     khttpbasic_validate -- validate an	HTTP basic authorisation request

LIBRARY
     library "libkcgi"

SYNOPSIS
     #include <sys/types.h>
     #include <stdarg.h>
     #include <stdint.h>
     #include <kcgi.h>

     int
     khttpbasic_validate(struct	kreq *req, const char *user,
	 const char *password);

DESCRIPTION
     The khttpbasic_validate() function	validates the given user and password
     with the HTTP "basic" or "bearer" authorised request req as returned by
     khttp_parse(3) or khttp_fcgi_parse(3).

     In	both cases, the	request	is validated by	base64-encoding	user:password
     and comparing it to the given token.

RETURN VALUES
     khttpbasic_validate() will	return zero if validation failed, less than
     zero if the request was not properly set up for HTTP basic	or bearer val-
     idation (no HTTP method, not a basic or bearer request, not already au-
     thenticated by the	web server), or	greater	than zero if the validation
     succeeded.

EXAMPLES
     In	the following fragment,	assume r a pointer to a	struct kreq success-
     fully initialised by khttp_parse(3).  If validation is not	provided, it
     returns an	HTTP 401.  The expected	principle is "james", password "bond".
     Otherwise,	it returns an HTTP 200.

	   if (khttpbasic_validate(r, "james", "bond") <= 0) {
	     khttp_head(r, kresps[KRESP_STATUS],
	       "%s", khttps[KHTTP_401]);
	     khttp_head(r, kresps[KRESP_WWW_AUTHENTICATE],
	       "basic realm=\"%s\"", "some realm");
	   } else
	     khttp_head(r, kresps[KRESP_STATUS],
	       "%s", khttps[KHTTP_200]);

SEE ALSO
     kcgi(3), khttp_fcgi_parse(3), khttp_parse(3), khttpdigest_validate(3)

AUTHORS
     Written by	Kristaps Dzonsons <kristaps@bsd.lv>.

FreeBSD	13.0			August 14, 2022			  FreeBSD 13.0

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | EXAMPLES | SEE ALSO | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=khttpbasic_validate&sektion=3&manpath=FreeBSD+13.1-RELEASE+and+Ports>

home | help