Extrait de l'article Wikipedia:
In the context of an HTTP transaction, the basic access authentication is a method designed to allow a web browser, or other client program, to provide credentials – in the form of a user name and password – when making a request.Avant la transmission, le nom et le mot de passe sont encodés en base-64. Par exemple, le nom Aladdin et le mot-de-passe "open sesame" vont être assemblés en "Aladdin:open sesame" – dont l'équivalent est QWxhZGRpbjpvcGVuIHNlc2FtZQ== en Base64. Un petit effort est requis pour décoder ces chaînes et de nombreux outils de sécurité les décodent à la volée.
So HTTP Basic Autentication is managed trough an HTTP header (Authorization
), that can be forged by LL::NG, with this precautions:
The Basic Authentication relies on a specific HTTP header, as described above. Il suffit donc de déclarer cet en-tête pour l'hôte virtuel dans le manager.
Par exemple, pour exporter l'identifiant ($uid
) et le mot-de-passe ($_password
si le mot-de-passe est stocké dans la session):
Authorization => "Basic ".encode_base64("$uid:$_password")
LL::NG fournit une fonction spéciale nommée basic pour construire cet en-tête.
Ainsi l'exemple ci-dessous peut être écrit simplement :
Authorization => basic($uid,$_password)
basic
function will also force conversion from UTF-8 to ISO-8859-1, which should be accepted by most of HTTP servers.