JPAM
Summary | Admin | Home Page | Forums | Tracker | Bugs | Support | Patches | RFE | Lists | Tasks | Docs | News | CVS | Files |

## Overview

Jpam is a Java-PAM bridge. PAM, or Pluggable Authentication Modules, is a standard security architecture used on Unix, Linux and Mac OS X systems.
JPAM permits the use of PAM authentication facilities by Java applications running on those platforms.
These facilities include:

- account
- auth
- password,
- session

## News Highlights

- 23 April 2005. jpam 0.4 released. Source and binaries for Linux x86, Linux x86_64 and Mac OS X. This is a stable release. JPAM has been used in production for three motnhs and extensively tested. Several bugs fixed.
- 17 November 2004. jpam 0.3 released. Source and binaries for Linux x86, Linux x86_64 and Mac OS X. With this release JPAM is ready for developer use.

- 17 August 2004 jpam project commenced. See cvs for a 0.1 alpha release which supports Linux

## Downloads

Download here.

## Documentation

The following documentation is available:

- Guide to jpam.
- JavaDoc

## Uses

Jpam provides the integration with PAM. Any Java application that needs to do authentication can potentially use jpam.
Commonly Java application authenticate using one of the following approaches and APIs:

- Database username and password tables; JDBC
- LDAP, such as Novell NDS, open LDAP or Active Directory; JNDI

However, there are many more approaches than these two. There are hundreds of authentication systems accessible through PAM. See a list fo Linux here. Many of these are installed by default in the Linux distributions. Fedora Core 2 has 54 PAM modules in its /lib/security directory ready for use. Some notable examples of PAM modules are:

Name | Module | Use
--- | --- | ---
SecurId | pam_securid.so | Authenticates SecurId hardware tokens with the RSAACE Server. Available from RSA as a free download.
Unix | `pam_unix_*.so` | Authenticates using configured Unix scheme. This can be shadow passwords or NIS, depending on how the machine was configured
RADIUS | `pam_radius.so` | Authenticates using RADIUS servers
CryptoCard |
    pam_smxs.so
| Authenticates using CryptoCard RB1 hardware tokens and similar
Samba | pam_winbind.so | Authenticates using Windows and Samba servers.
Kerberos | pam_krb5.so | Authenticates with Kerberos/Active Directory
LDAP | pam_ldap.so | Authenticates with LDAP servers (from Java you could also use the JNDI API)
SafeWord | pam_safeword.so | Authenticates SafeWord tokens