| 1 23 24 package com.rift.coad.lib.security; 26 27 import com.rift.coad.lib.configuration.ConfigurationFactory; 29 import com.rift.coad.lib.configuration.Configuration; 30 31 36 public class ThreadsPermissionContainerAccessor { 37 38 private final static String ROLE = "role"; 40 41 private static ThreadsPermissionContainerAccessor singleton = null; 43 44 private String role = null; 46 private ThreadsPermissionContainer permissionContainer = null; 47 48 54 private ThreadsPermissionContainerAccessor( 55 ThreadsPermissionContainer permissionContainer) 56 throws SecurityException { 57 try { 58 this.permissionContainer = permissionContainer; 59 Configuration config = ConfigurationFactory.getInstance().getConfig( 60 this.getClass()); 61 role = config.getString(ROLE); 62 } catch (Exception ex) { 63 throw new SecurityException ( 64 "Failed to instanciate the thread permission container " + 65 "accessor because : " + ex.getMessage(),ex); 66 } 67 } 68 69 70 76 public synchronized static ThreadsPermissionContainerAccessor init ( 77 ThreadsPermissionContainer permissionContainer) 78 throws SecurityException { 79 if (singleton == null) { 80 singleton = new ThreadsPermissionContainerAccessor( 81 permissionContainer); 82 } 83 return singleton; 84 } 85 86 87 93 public synchronized static ThreadsPermissionContainerAccessor getInstance() 94 throws SecurityException { 95 if (singleton == null) { 96 throw new SecurityException ( 97 "The accessor has not been instanciated."); 98 } 99 return singleton; 100 } 101 102 103 110 public ThreadsPermissionContainer getThreadsPermissionContainer() throws 111 AuthorizationException, SecurityException  112 { 113 Validator.validate(this.getClass(),role); 114 return permissionContainer; 115 } 116 117 } 118 | Popular Tags |