package diskCacheV111.admin ;
public class PAM_Auth {
private final String _service;
private static boolean _libLoaded;
private native int checkUser(String service,String user, String pass);
//
// now join library
//
static {
try{
System.loadLibrary("pam4java");
_libLoaded = true ;
}catch (UnsatisfiedLinkError e) {
System.err.println("Error in loading library." +e);
}
}
public PAM_Auth(String service) {
_service = service;
}
public boolean pamOk(){ return _libLoaded ; }
public boolean authenticate( String user, String pass ){
if( ! _libLoaded ) {
throw new
IllegalArgumentException("pam4java not loaded");
}
return checkUser( _service, user, pass ) == 1 ;
}
public static void main(String[] args) {
if( args.length < 2 ){
System.err.println(" Usage : ... <user> <password> [<service>]" ) ;
System.exit(4);
}
try{
PAM_Auth pam = new PAM_Auth( args.length > 2 ? args[2] : "login" );
boolean rc = pam.authenticate( args[0] , args[1] );
System.out.println( "Authentication returned : "+rc ) ;
}catch ( Exception e) {
e.printStackTrace();
}
}
}