Removed obsolete class.
This commit is contained in:
parent
541286dc59
commit
9960e1c919
1 changed files with 0 additions and 130 deletions
|
@ -1,130 +0,0 @@
|
|||
/*
|
||||
* Helma License Notice
|
||||
*
|
||||
* The contents of this file are subject to the Helma License
|
||||
* Version 2.0 (the "License"). You may not use this file except in
|
||||
* compliance with the License. A copy of the License is available at
|
||||
* http://adele.helma.org/download/helma/license.txt
|
||||
*
|
||||
* Copyright 1998-2003 Helma Software. All Rights Reserved.
|
||||
*
|
||||
* $RCSfile$
|
||||
* $Author$
|
||||
* $Revision$
|
||||
* $Date$
|
||||
*/
|
||||
|
||||
package helma.util;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
|
||||
import org.apache.commons.codec.digest.DigestUtils;
|
||||
|
||||
/**
|
||||
* This file authenticates against a passwd file
|
||||
*/
|
||||
public class CryptFile {
|
||||
private Properties users;
|
||||
private CryptFile parentFile;
|
||||
private File file;
|
||||
private long lastRead = 0;
|
||||
|
||||
/**
|
||||
* Creates a new CryptFile object.
|
||||
*
|
||||
* @param file ...
|
||||
* @param parentFile ...
|
||||
*/
|
||||
public CryptFile(File file, CryptFile parentFile) {
|
||||
this.file = file;
|
||||
this.parentFile = parentFile;
|
||||
users = new Properties();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @param username ...
|
||||
* @param pw ...
|
||||
*
|
||||
* @return ...
|
||||
*/
|
||||
public boolean authenticate(String username, String pw) {
|
||||
if (file.exists() && (file.lastModified() > lastRead)) {
|
||||
readFile();
|
||||
} else if (!file.exists() && (users.size() > 0)) {
|
||||
users.clear();
|
||||
}
|
||||
|
||||
String realpw = users.getProperty(username);
|
||||
|
||||
if (realpw != null) {
|
||||
try {
|
||||
// check if password matches
|
||||
// first we try with unix crypt algorithm
|
||||
String cryptpw = Crypt.crypt(realpw, pw);
|
||||
|
||||
if (realpw.equals(cryptpw)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// then try MD5
|
||||
if (realpw.equals(DigestUtils.md5(pw))) {
|
||||
return true;
|
||||
}
|
||||
} catch (Exception x) {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
if (parentFile != null) {
|
||||
return parentFile.authenticate(username, pw);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private synchronized void readFile() {
|
||||
BufferedReader reader = null;
|
||||
|
||||
users = new Properties();
|
||||
|
||||
try {
|
||||
reader = new BufferedReader(new FileReader(file));
|
||||
|
||||
String line = reader.readLine();
|
||||
|
||||
while (line != null) {
|
||||
StringTokenizer st = new StringTokenizer(line, ":");
|
||||
|
||||
if (st.countTokens() > 1) {
|
||||
users.put(st.nextToken(), st.nextToken());
|
||||
}
|
||||
|
||||
line = reader.readLine();
|
||||
}
|
||||
} catch (Exception ignore) {
|
||||
} finally {
|
||||
if (reader != null) {
|
||||
try {
|
||||
reader.close();
|
||||
} catch (Exception x) {
|
||||
}
|
||||
}
|
||||
|
||||
lastRead = System.currentTimeMillis();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @param args ...
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
CryptFile cf = new CryptFile(new File("passwd"), null);
|
||||
|
||||
System.err.println(cf.authenticate("hns", "asdf"));
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue