1 25 package org.nemesis.forum; 26 27 import java.util.PropertyResourceBundle ; 28 29 import org.apache.commons.logging.Log; 30 import org.apache.commons.logging.LogFactory; 31 import org.nemesis.forum.exception.UnauthorizedException; 32 33 47 public abstract class AuthorizationFactory { 48 static protected Log log =LogFactory.getLog(AuthorizationFactory.class); 49 50 private static Object initLock = new Object (); 51 52 private static AuthorizationFactory factory = null; 53 54 69 public static Authorization getAuthorization(String username, String password) throws UnauthorizedException { 70 loadAuthorizationFactory(); 71 return factory.createAuthorization(username, password); 72 } 73 74 79 public static Authorization getAnonymousAuthorization() { 80 loadAuthorizationFactory(); 81 return factory.createAnonymousAuthorization(); 82 } 83 84 94 public abstract Authorization createAuthorization(String username, String password) throws UnauthorizedException; 95 96 102 public abstract Authorization createAnonymousAuthorization(); 103 104 105 private static String Impl = 106 (String ) 107 ( 108 (PropertyResourceBundle ) PropertyResourceBundle.getBundle( 109 "org.nemesis.forum.config")).getObject( 110 "AuthorizationFactory.class"); 111 112 122 private static void loadAuthorizationFactory() { 123 if (factory == null) { 124 synchronized (initLock) { 126 if (factory == null) { 127 128 try { 129 Class c = Class.forName(Impl); 130 factory = (AuthorizationFactory) c.newInstance(); 131 } catch (Exception e) { 132 log.fatal("Exception loading class: " , e); 133 134 } 135 } 136 } 137 } 138 } 139 } 140 | Popular Tags |