---
name: "Authen::Simple::DBI"
section: "3pm"
platform: "linux"
package: "libauthen-simple-dbi-perl"
version: "0.2-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Authen::Simple::DBI"
---

# Authen::Simple::DBI(3pm)

Simple DBI authentication

## NAME

Authen::Simple::DBI - Simple DBI authentication

## SYNOPSIS

```
    use Authen::Simple::DBI;

    my $dbi = Authen::Simple::DBI->new(
        dsn       => 'dbi:SQLite:dbname=database.db',
        statement => 'SELECT password FROM users WHERE username = ?'
    );

    if ( $dbi->authenticate( $username, $password ) ) {
        # successfull authentication
    }

    # or as a mod_perl Authen handler
    PerlModule Apache::DBI
    PerlModule Authen::Simple::Apache
    PerlModule Authen::Simple::DBI
    PerlSetVar AuthenSimpleDBI_dsn       "dbi:SQLite:dbname=database.db"
    PerlSetVar AuthenSimpleDBI_statement "SELECT password FROM users WHERE username = ?"
    <Location /protected>
      PerlAuthenHandler Authen::Simple::DBI
      AuthType          Basic
      AuthName          "Protected Area"
      Require           valid-user
    </Location>
```

## DESCRIPTION

DBI authentication.

## METHODS

- •

  new

  This method takes a hash of parameters. The following options are valid:

  - •

    dsn

    Database Source Name. Required.

    ```
        dsn => 'dbi:SQLite:dbname=database.db'
        dsn => 'dbi:mysql:database=database;host=localhost;'
    ```

  - •

    statement

    SQL statement. The statement must take a single string argument (username) and  return a single value (password). Required.

    ```
        statement => 'SELECT password FROM users WHERE username = ?'
    ```

  - •

    username

    Database username.

    ```
        username => 'username'
    ```

  - •

    password

    Database password.

    ```
        password => 'secret'
    ```

  - •

    log

    Any object that supports `"debug"`, `"info"`, `"error"` and `"warn"`.

    ```
        log => Log::Log4perl->get_logger('Authen::Simple::DBI')
    ```

- •

  authenticate( `$username`, `$password` )

  Returns true on success and false on failure.

## SEE ALSO

Authen::Simple.

Authen::Simple::Password.

DBI.

## AUTHOR

Christian Hansen `"ch@ngmedia.com"`

## COPYRIGHT

This program is free software, you can redistribute it and/or modify  it under the same terms as Perl itself.
