1 37 38 package com.sun.j2ee.blueprints.signon; 39 40 import com.sun.j2ee.blueprints.util.dao.DAOFactory; 41 import com.sun.j2ee.blueprints.signon.dao.UserDAO; 42 import com.sun.j2ee.blueprints.signon.dao.JNDINames; 43 import com.sun.j2ee.blueprints.signon.dao.SignOnDAOFinderException; 44 import com.sun.j2ee.blueprints.signon.dao.InvalidPasswordException; 45 import com.sun.j2ee.blueprints.signon.dao.SignOnDAODupKeyException; 46 47 48 public class SignOnFacade { 49 50 public static final int MAX_USERID_LENGTH = 25; 54 public static final int MAX_PASSWD_LENGTH = 25; 55 56 private UserDAO userDAO = null; 57 58 public SignOnFacade() { 59 userDAO = (UserDAO)DAOFactory.getDAO(JNDINames.SIGNON_DAO_CLASS); 60 } 61 62 66 public boolean authenticate(String userName, String password) { 67 boolean valid = false; 68 try { 69 valid = userDAO.matchPassword(userName, password); 70 } catch (SignOnDAOFinderException sfx) { 71 return false; 72 } catch (InvalidPasswordException ix) { 73 return false; 74 } 75 return valid; 76 } 77 78 79 public void createSignOn(String userName, String password) 80 throws SignOnLongIdException, 81 SignOnInvalidCharException, 82 SignOnDupKeyException { 83 84 isInputValidLength(userName, password); 86 try { 87 userDAO.createUser(userName, password); 88 } catch (SignOnDAODupKeyException sdke) { 89 throw new SignOnDupKeyException("Duplicate User: " + userName); 90 } 91 } 92 93 98 private void isInputValidLength(String userName, String password) throws 99 SignOnLongIdException, SignOnInvalidCharException { 100 if(userName.length() > MAX_USERID_LENGTH) { 102 throw new SignOnLongIdException("User ID cant be more than " + 103 MAX_USERID_LENGTH + " chars long"); 104 } 105 if(password.length() > MAX_PASSWD_LENGTH) { 106 throw new SignOnLongIdException("Password cant be more than " + 107 MAX_PASSWD_LENGTH + " chars long"); 108 } 109 if( (userName.indexOf('%') != -1) || 110 (userName.indexOf('*') != -1) ) { 111 throw new SignOnInvalidCharException("User Id cannot " + 112 "have '%' or '*' characters"); 113 } 114 } 115 } 116 | Popular Tags |