| 1 10 package org.mmbase.security.implementation.cloud; 11 12 import org.mmbase.module.core.MMObjectNode; 13 import org.mmbase.module.core.MMObjectBuilder; 14 15 import org.mmbase.util.logging.Logger; 16 import org.mmbase.util.logging.Logging; 17 18 24 public class UserBuilder extends MMObjectBuilder { 25 private static final Logger log = Logging.getLoggerInstance(UserBuilder.class); 26 27 private org.mmbase.util.Encode encoder = null; 28 29 32 public boolean init() { 33 String encoding = (String ) getInitParameters().get("encoding"); 34 if(encoding==null) { 35 log.warn("no property 'encoding' defined in '"+getTableName()+".xml' using default encoding"); 36 encoder = new org.mmbase.util.Encode("MD5"); 37 } else { 38 encoder = new org.mmbase.util.Encode(encoding); 39 } 40 log.info("Using " + encoder.getEncoding() + " as our encoding for password"); 41 return super.init(); 42 } 43 44 45 46 50 boolean exists(String username, String password) { 51 if (log.isTraceEnabled()) { 52 log.trace("username: '" + username + "' password: '" + password + "'"); 53 } 54 java.util.Enumeration e = search("WHERE username = '"+username+"' "); 55 while(e.hasMoreElements()) { 56 MMObjectNode node = (MMObjectNode) e.nextElement(); 57 if(password == null || encode(password).equals(node.getStringValue("password"))) { 58 log.trace("username: '"+username+"' password: '"+password+"' found in node #" + node.getNumber()); 60 return true; 61 } else { 62 log.trace("username: '"+username+"' found in node #" + node.getNumber()+" --> PASSWORDS NOT EQUAL"); 63 } 64 } 65 if (log.isTraceEnabled()) { 66 log.trace("username: '"+username+"' --> USERNAME NOT CORRECT"); 67 } 68 return false; 69 } 70 71 protected String encode(String value) { 72 return encoder.encode(value); 73 } 74 } 75 | Popular Tags |