| Qore HttpServerUtil Module Reference 1.0

Public Member Functions | List of all members
HttpServer::PermissiveAuthenticator Class Reference

class providing automatic authentication for all requests More...

Inheritance diagram for HttpServer::PermissiveAuthenticator:
[legend]

## Public Member Functions
*hash< HttpResponseInfo > | authenticateRequest (HttpListenerInterface listener, hash< auto > hdr, reference< hash > cx)
| primary method called to authenticate each request More...
Public Member Functions inherited from HttpServer::AbstractAuthenticator
| authenticate (string user, string pass='')
| called to authenticate a user for a connection More...
| authenticateByIP (string ip, reference< string > user)
| called when the connection requires authentication, but no authentication credentials were supplied, to try to authenticate the connection based on the source IP address More...
*hash< HttpResponseInfo > | authenticateRequest (HttpListenerInterface listener, hash< auto > hdr, reference< hash< auto >> cx)
| primary method called to authenticate each request More...
hash< HttpResponseInfo > | do401 (string msg='Authentication is required to access this server', *hash< auto > cx)
| returns a 401 repsonse with the given string argument as the message body More...
hash< auto > | getAuthHeader ()
| returns a hash with one item - `WWW-Authenticate` header set to correct realm More...
hash< auto > | getAuthHeader (hash< auto > cx)
| returns a hash with one item - `WWW-Authenticate` header set to correct realm More...
string | getRealm ()
| returns the authentication realm as a string More...
bool | requiresAuthentication ()
| called to check if the connection requires authentication More...

## Detailed Description

class providing automatic authentication for all requests

## Member Function Documentation

## ◆ authenticateRequest()

*hash<HttpResponseInfo> HttpServer::PermissiveAuthenticator::authenticateRequest | ( | HttpListenerInterface | listener,
|  | hash< auto > | hdr,
|  | reference< hash > | cx
| ) |  |

primary method called to authenticate each request

Parameters

  listener | an HttpListenerInterface object for the listener serving the request for logging purposes
  hdr | a hash of request headers
  cx | a reference to the call context hash; set the `"user"` key to the user name if a user was identified and authorized; this hash will have the following keys: `header-info`: a hash of information about the request header with the following keys: `accept-charset`: this key will be set to an appropriate value from any `"Accept-Charset"` header; if any of `"*"`, `"utf8"`, or `"utf-8"` are present, then this will be set to `"utf8"`, otherwise it will be set to the first requested character encoding in the list `accept-encoding`: a hash where keys are values from any `"Accept-Encoding"` header and the values are True `body-content-type`: this is the `"Content-Type"` header without any charset declaration `charset:` if there is a charset declaration in the `"Content-Type"` header, the value is returned in this key `client-cert`: if the server is configured to capture remote client certificates, and the client supplied a certificate, this key will be populated with the SSLCertificate for the client `close:` set to True if the connection should be closed after responding, False if not (as derived from the request header) `headers-raw`: a hash of raw request headers without any case conversions or other processing `request-uri`: gives the request URI in an HTTP request `socket:` the bind address used to bind the listener (`"socket-info"` provides more detailed information) `socket-info`: a hash of socket information for the listening socket (as returned by Qore::Socket::getSocketInfo()) `peer-info`: a hash of socket information for the remote socket (as returned by Qore::Socket::getPeerInfo()) `url:` a hash of broken-down URL information (as returned from Qore::parse_url()) `id:` the unique HTTP connection ID `ssl:` True if the request was encrypted with HTTPS, False if not `listener-id`: the HTTP server listener ID (see HttpServer::getListenerInfo()) `user:` the current RBAC username (if any) `root_path:` the root URL path matched if the request was matched by a URL prefix

Returns
  returns NOTHING indicating that the request is authenticated