1 16 package org.jmanage.webui.util; 17 18 import org.jmanage.core.config.ApplicationConfig; 19 import org.jmanage.core.config.ApplicationConfigManager; 20 import org.jmanage.core.auth.User; 21 import org.jmanage.core.management.ServerConnection; 22 import org.jmanage.core.management.ServerConnector; 23 import org.jmanage.core.management.ObjectName; 24 import org.jmanage.core.management.MalformedObjectNameException; 25 import org.jmanage.core.services.ServiceContext; 26 import org.jmanage.core.services.ServiceUtils; 27 import org.jmanage.core.util.Loggers; 28 29 import javax.servlet.http.HttpServletRequest ; 30 import javax.servlet.http.HttpSession ; 31 import java.util.logging.Logger ; 32 33 38 public class WebContext { 39 40 private static final Logger logger = Loggers.getLogger(WebContext.class); 41 42 private ApplicationConfig appConfig; 43 private HttpServletRequest request; 44 private HttpSession session; 45 private ServiceContext serviceContext; 46 47 private ServerConnection serverConnection; 48 49 private WebContext(HttpServletRequest request) { 50 51 this.request = request; 52 this.session = request.getSession(); 53 final String appId = request.getParameter(RequestParams.APPLICATION_ID); 54 if (appId != null) { 55 appConfig = 56 ApplicationConfigManager.getApplicationConfig(appId); 57 request.setAttribute(RequestAttributes.APPLICATION_CONFIG, 58 appConfig); 59 } 60 } 61 62 public ApplicationConfig getApplicationConfig() { 63 return appConfig; 64 } 65 66 public ServerConnection getServerConnection(){ 67 assert appConfig != null; 68 assert !appConfig.isCluster():"not supported for cluster"; 69 if (serverConnection == null) { 70 serverConnection = 71 ServerConnector.getServerConnection(appConfig); 72 } 73 return serverConnection; 74 } 75 76 public ObjectName getObjectName() { 77 return getObjectName(request); 78 } 79 80 public static ObjectName getObjectName(HttpServletRequest request){ 81 try { 82 final String objectNameString = 83 request.getParameter(RequestParams.OBJECT_NAME); 84 if(objectNameString != null){ 85 return new ObjectName(objectNameString); 86 }else{ 87 return null; 88 } 89 } catch (MalformedObjectNameException e) { 90 throw new RuntimeException (e); 91 } 92 } 93 94 public static WebContext get(HttpServletRequest request) { 95 WebContext context = 96 (WebContext) request.getAttribute(RequestAttributes.WEB_CONTEXT); 97 if (context == null) { 98 context = new WebContext(request); 99 request.setAttribute(RequestAttributes.WEB_CONTEXT, context); 100 } 101 return context; 102 } 103 104 public void setUser(User user) { 105 session.setAttribute(RequestAttributes.AUTHENTICATED_USER, user); 106 } 107 108 public void removeUser() { 109 session.removeAttribute(RequestAttributes.AUTHENTICATED_USER); 110 } 111 112 public User getUser(){ 113 return (User)session.getAttribute(RequestAttributes.AUTHENTICATED_USER); 114 } 115 116 public ServiceContext getServiceContext(){ 117 if(serviceContext == null){ 118 serviceContext = new ServiceContextImpl(this); 119 } 120 return serviceContext; 121 } 122 123 public void releaseResources() { 124 ServiceUtils.close(serverConnection); 125 serverConnection = null; 126 } 127 } 128 | Popular Tags |