improved addressFilter, switched to helma embedded md5-function

This commit is contained in:
stefanp 2002-03-25 17:56:26 +00:00
parent cc36746efb
commit 6374ce94fc

View file

@ -10,19 +10,39 @@ function scheduler() {
/** /**
* initializes requestStat storage on startup * initializes app.requestStat storage on startup,
* creates app.addressFilter
*/ */
function onStart() { function onStart() {
app.requestStat = new HopObject(); app.requestStat = new HopObject();
app.addressFilter = new Packages.helma.util.InetAddressFilter(); app.addressFilter = createAddressFilter();
}
/**
* initializes addressFilter from app.properties,
* hostnames are converted, wildcards are only allowed in ip-addresses
* (so, no network-names, sorry)
*/
function createAddressFilter() {
var filter = new Packages.helma.util.InetAddressFilter();
var str = root.getProperty("allowadmin"); var str = root.getProperty("allowadmin");
if ( str!=null && str!="" ) { if ( str!=null && str!="" ) {
var arr = str.split(","); var arr = str.split(",");
for ( var i in arr ) { for ( var i in arr ) {
var str = new java.lang.String(arr[i]); var str = new java.lang.String(arr[i]);
app.addressFilter.addAddress(str.trim()); var result = tryEval("filter.addAddress(str.trim());");
if ( result.error!=null ) {
var str = java.net.InetAddress.getByName(str.trim()).getHostAddress();
var result = tryEval("filter.addAddress(str);");
}
if ( result.error==null ) {
app.__app__.logEvent( "allowed address for app manage: " + str );
} }
} }
} else {
app.__app__.logEvent("no addresses allowed for app manage, all access will be denied");
}
return filter;
} }
@ -92,8 +112,10 @@ function checkAuth(appObj) {
var rootUsername = root.getProperty("adminusername"); var rootUsername = root.getProperty("adminusername");
var rootPassword = root.getProperty("adminpassword"); var rootPassword = root.getProperty("adminpassword");
if ( rootUsername==null || rootUsername=="" || rootPassword==null || rootPassword=="" ) if ( rootUsername==null || rootUsername=="" || rootPassword==null || rootPassword=="" ) {
app.__app__.logEvent("adminUsername or adminPassword not set in server.properties!");
return forceStealth(); return forceStealth();
}
var uname = req.getUsername(); var uname = req.getUsername();
var pwd = req.getPassword(); var pwd = req.getPassword();
@ -101,8 +123,8 @@ function checkAuth(appObj) {
if ( uname==null || uname=="" || pwd==null || pwd=="" ) if ( uname==null || uname=="" || pwd==null || pwd=="" )
return forceAuth(); return forceAuth();
var md5username = calcMD5(uname); var md5username = Packages.helma.util.MD5Encoder.encode(uname);
var md5password = calcMD5(pwd); var md5password = Packages.helma.util.MD5Encoder.encode(pwd);
if ( md5username==rootUsername && md5password==rootPassword ) if ( md5username==rootUsername && md5password==rootPassword )
return true; return true;
@ -124,11 +146,13 @@ function checkAuth(appObj) {
* check access to the base-app by ip-addresses * check access to the base-app by ip-addresses
*/ */
function checkAddress() { function checkAddress() {
if ( !app.addressFilter.matches(java.net.InetAddress.getByName(req.data.http_remotehost)) ) if ( !app.addressFilter.matches(java.net.InetAddress.getByName(req.data.http_remotehost)) ) {
app.__app__.logEvent("denied request from " + req.data.http_remotehost );
return forceStealth(); return forceStealth();
else } else {
return true; return true;
} }
}
/** /**