001 package railo.runtime.listener; 002 003 import railo.commons.io.res.Resource; 004 import railo.runtime.Mapping; 005 import railo.runtime.PageContext; 006 import railo.runtime.config.Config; 007 import railo.runtime.config.ConfigImpl; 008 import railo.runtime.exp.ApplicationException; 009 import railo.runtime.exp.PageException; 010 import railo.runtime.net.s3.Properties; 011 import railo.runtime.orm.ORMConfiguration; 012 import railo.runtime.type.Scope; 013 import railo.runtime.type.dt.TimeSpan; 014 import railo.runtime.util.ApplicationContext; 015 016 /** 017 * 018 */ 019 public class ClassicApplicationContext extends ApplicationContextSupport { 020 021 022 private static final long serialVersionUID = 940663152793150953L; 023 024 025 026 027 private String name; 028 private boolean setClientCookies; 029 private boolean setDomainCookies; 030 private boolean setSessionManagement; 031 private boolean setClientManagement; 032 private TimeSpan sessionTimeout=null; 033 private TimeSpan clientTimeout; 034 private TimeSpan applicationTimeout=null; 035 private int loginStorage=-1; 036 private String clientstorage; 037 private String sessionstorage; 038 private int scriptProtect; 039 private Mapping[] mappings; 040 private Mapping[] ctmappings; 041 private Mapping[] cmappings; 042 private boolean secureJson; 043 private String secureJsonPrefix="//"; 044 private boolean isDefault; 045 private String defaultDataSource; 046 private boolean ormEnabled; 047 private String ormdatasource; 048 private ORMConfiguration config; 049 private Properties s3; 050 051 052 private int localMode; 053 private short sessionType; 054 private boolean sessionCluster; 055 private boolean clientCluster; 056 057 058 059 060 private Resource source; 061 062 063 /** 064 * constructor of the class 065 * @param config 066 */ 067 public ClassicApplicationContext(Config config,String name,boolean isDefault, Resource source) { 068 ConfigImpl ci = ((ConfigImpl)config); 069 this.name=name; 070 setClientCookies=config.isClientCookies(); 071 setDomainCookies=config.isDomainCookies(); 072 setSessionManagement=config.isSessionManagement(); 073 setClientManagement=config.isClientManagement(); 074 sessionTimeout=config.getSessionTimeout(); 075 clientTimeout=ci.getClientTimeout(); 076 applicationTimeout=config.getApplicationTimeout(); 077 loginStorage=Scope.SCOPE_COOKIE; 078 scriptProtect=config.getScriptProtect(); 079 this.isDefault=isDefault; 080 this.defaultDataSource=ci.getDefaultDataSource(); 081 this.localMode=config.getLocalMode(); 082 this.sessionType=config.getSessionType(); 083 this.sessionCluster=ci.getSessionCluster(); 084 this.clientCluster=ci.getClientCluster(); 085 this.source=source; 086 } 087 088 /** 089 * Constructor of the class, only used by duplicate method 090 */ 091 private ClassicApplicationContext() { 092 093 } 094 095 096 public ApplicationContext duplicate() { 097 ClassicApplicationContext dbl = new ClassicApplicationContext(); 098 099 100 dbl.name=name; 101 dbl.setClientCookies=setClientCookies; 102 dbl.setDomainCookies=setDomainCookies; 103 dbl.setSessionManagement=setSessionManagement; 104 dbl.setClientManagement=setClientManagement; 105 dbl.sessionTimeout=sessionTimeout; 106 dbl.clientTimeout=clientTimeout; 107 dbl.applicationTimeout=applicationTimeout; 108 dbl.loginStorage=loginStorage; 109 dbl.clientstorage=clientstorage; 110 dbl.sessionstorage=sessionstorage; 111 dbl.scriptProtect=scriptProtect; 112 dbl.mappings=mappings; 113 dbl.ctmappings=ctmappings; 114 dbl.cmappings=cmappings; 115 dbl.secureJson=secureJson; 116 dbl.secureJsonPrefix=secureJsonPrefix; 117 dbl.isDefault=isDefault; 118 dbl.defaultDataSource=defaultDataSource; 119 dbl.applicationtoken=applicationtoken; 120 dbl.cookiedomain=cookiedomain; 121 dbl.idletimeout=idletimeout; 122 dbl.localMode=localMode; 123 dbl.sessionType=sessionType; 124 125 dbl.ormEnabled=ormEnabled; 126 dbl.config=config; 127 dbl.ormdatasource=ormdatasource; 128 dbl.sessionCluster=sessionCluster; 129 dbl.clientCluster=clientCluster; 130 dbl.source=source; 131 132 return dbl; 133 } 134 135 136 /** 137 * @see railo.runtime.util.IApplicationContext#getApplicationTimeout() 138 */ 139 public TimeSpan getApplicationTimeout() { 140 return applicationTimeout; 141 } 142 /** 143 * @param applicationTimeout The applicationTimeout to set. 144 */ 145 public void setApplicationTimeout(TimeSpan applicationTimeout) { 146 this.applicationTimeout = applicationTimeout; 147 } 148 /** 149 * @see railo.runtime.util.IApplicationContext#getLoginStorage() 150 */ 151 public int getLoginStorage() { 152 return loginStorage; 153 } 154 /** 155 * @param loginStorage The loginStorage to set. 156 */ 157 public void setLoginStorage(int loginStorage) { 158 this.loginStorage = loginStorage; 159 } 160 161 public void setLoginStorage(String strLoginStorage) throws ApplicationException { 162 setLoginStorage(AppListenerUtil.translateLoginStorage(strLoginStorage)); 163 } 164 165 166 167 /** 168 * @see railo.runtime.util.IApplicationContext#getFullName() 169 */ 170 public String getName() { 171 return name; 172 } 173 /** 174 * @param name The name to set. 175 */ 176 public void setName(String name) { 177 this.name = name; 178 } 179 /** 180 * @see railo.runtime.util.IApplicationContext#getSessionTimeout() 181 */ 182 public TimeSpan getSessionTimeout() { 183 return sessionTimeout; 184 } 185 186 /** 187 * @param sessionTimeout The sessionTimeout to set. 188 */ 189 public void setSessionTimeout(TimeSpan sessionTimeout) { 190 this.sessionTimeout = sessionTimeout; 191 } 192 193 194 public TimeSpan getClientTimeout() { 195 return clientTimeout; 196 } 197 198 /** 199 * @param sessionTimeout The sessionTimeout to set. 200 */ 201 public void setClientTimeout(TimeSpan clientTimeout) { 202 this.clientTimeout = clientTimeout; 203 } 204 205 /** 206 * @see railo.runtime.util.IApplicationContext#isSetClientCookies() 207 */ 208 public boolean isSetClientCookies() { 209 return setClientCookies; 210 } 211 /** 212 * @param setClientCookies The setClientCookies to set. 213 */ 214 public void setSetClientCookies(boolean setClientCookies) { 215 this.setClientCookies = setClientCookies; 216 } 217 /** 218 * @see railo.runtime.util.IApplicationContext#isSetClientManagement() 219 */ 220 public boolean isSetClientManagement() { 221 return setClientManagement; 222 } 223 /** 224 * @param setClientManagement The setClientManagement to set. 225 */ 226 public void setSetClientManagement(boolean setClientManagement) { 227 this.setClientManagement = setClientManagement; 228 } 229 /** 230 * @see railo.runtime.util.IApplicationContext#isSetDomainCookies() 231 */ 232 public boolean isSetDomainCookies() { 233 return setDomainCookies; 234 } 235 /** 236 * @param setDomainCookies The setDomainCookies to set. 237 */ 238 public void setSetDomainCookies(boolean setDomainCookies) { 239 this.setDomainCookies = setDomainCookies; 240 } 241 /** 242 * @see railo.runtime.util.IApplicationContext#isSetSessionManagement() 243 */ 244 public boolean isSetSessionManagement() { 245 return setSessionManagement; 246 } 247 /** 248 * @param setSessionManagement The setSessionManagement to set. 249 */ 250 public void setSetSessionManagement(boolean setSessionManagement) { 251 this.setSessionManagement = setSessionManagement; 252 } 253 /** 254 * @see railo.runtime.util.IApplicationContext#getClientstorage() 255 */ 256 public String getClientstorage() { 257 return clientstorage; 258 } 259 public String getSessionstorage() { 260 return sessionstorage; 261 } 262 /** 263 * @param clientstorage The clientstorage to set. 264 */ 265 public void setClientstorage(String clientstorage) { 266 this.clientstorage = clientstorage; 267 } 268 public void setSessionstorage(String sessionstorage) { 269 this.sessionstorage = sessionstorage; 270 } 271 272 /** 273 * @see railo.runtime.util.IApplicationContext#hasName() 274 */ 275 public boolean hasName() { 276 return name!=null; 277 } 278 279 /** 280 * @param scriptProtect The scriptProtect to set. 281 */ 282 public void setScriptProtect(int scriptProtect) { 283 this.scriptProtect=scriptProtect; 284 } 285 286 /** 287 * @see railo.runtime.util.ApplicationContext#getScriptProtect() 288 */ 289 public int getScriptProtect() { 290 //if(isDefault)print.err("get:"+scriptProtect); 291 return scriptProtect; 292 } 293 294 295 296 297 public void setMappings(Mapping[] mappings) { 298 if(mappings.length>0)this.mappings=mappings; 299 } 300 301 /** 302 * @return the mappings 303 */ 304 public Mapping[] getMappings() { 305 return mappings; 306 } 307 308 public void setCustomTagMappings(Mapping[] ctmappings) { 309 this.ctmappings=ctmappings; 310 } 311 312 public Mapping[] getCustomTagMappings() { 313 return ctmappings; 314 } 315 316 public void setComponentMappings(Mapping[] cmappings) { 317 this.cmappings=cmappings; 318 } 319 320 public Mapping[] getComponentMappings() { 321 return cmappings; 322 } 323 324 public void setSecureJson(boolean secureJson) { 325 this.secureJson=secureJson; 326 } 327 328 public void setSecureJsonPrefix(String secureJsonPrefix) { 329 this.secureJsonPrefix=secureJsonPrefix; 330 } 331 332 /** 333 * @return the secureJson 334 */ 335 public boolean getSecureJson() { 336 return secureJson; 337 } 338 339 /** 340 * @return the secureJsonPrefix 341 */ 342 public String getSecureJsonPrefix() { 343 return secureJsonPrefix; 344 } 345 346 /** 347 * @return the defaultDataSource 348 */ 349 public String getDefaultDataSource() { 350 return defaultDataSource; 351 } 352 353 /** 354 * @param defaultDataSource the defaultDataSource to set 355 */ 356 public void setDefaultDataSource(String defaultDataSource) { 357 this.defaultDataSource = defaultDataSource; 358 } 359 360 public void setORMDataSource(String ormdatasource) { 361 this.ormdatasource = ormdatasource; 362 } 363 364 public boolean isORMEnabled() { 365 return ormEnabled; 366 } 367 368 public String getORMDatasource() { 369 return ormdatasource; 370 } 371 372 public ORMConfiguration getORMConfiguration() { 373 return config; 374 } 375 public void setORMConfiguration(ORMConfiguration config) { 376 this.config= config; 377 } 378 379 public void setORMEnabled(boolean ormEnabled) { 380 this.ormEnabled=ormEnabled; 381 } 382 383 /** 384 * @return the s3 385 */ 386 public Properties getS3() { 387 if(s3==null) s3=new Properties(); 388 return s3; 389 } 390 391 /** 392 * @return the localMode 393 */ 394 public int getLocalMode() { 395 return localMode; 396 } 397 398 399 /** 400 * @param localMode the localMode to set 401 */ 402 public void setLocalMode(int localMode) { 403 this.localMode = localMode; 404 } 405 406 407 408 /** 409 * @return the sessionType 410 */ 411 public short getSessionType() { 412 return sessionType; 413 } 414 415 /** 416 * @return the sessionType 417 */ 418 public void setSessionType(short sessionType) { 419 this.sessionType= sessionType; 420 } 421 422 423 /** 424 * @return the sessionCluster 425 */ 426 public boolean getSessionCluster() { 427 return sessionCluster; 428 } 429 430 431 /** 432 * @param sessionCluster the sessionCluster to set 433 */ 434 public void setSessionCluster(boolean sessionCluster) { 435 this.sessionCluster = sessionCluster; 436 } 437 438 439 /** 440 * @return the clientCluster 441 */ 442 public boolean getClientCluster() { 443 return clientCluster; 444 } 445 446 447 /** 448 * @param clientCluster the clientCluster to set 449 */ 450 public void setClientCluster(boolean clientCluster) { 451 this.clientCluster = clientCluster; 452 } 453 454 455 public void setS3(Properties s3) { 456 this.s3=s3; 457 } 458 459 /** 460 * @see railo.runtime.listener.ApplicationContextPro#setORMDatasource(java.lang.String) 461 */ 462 public void setORMDatasource(String ormdatasource) { 463 this.ormdatasource=ormdatasource; 464 } 465 466 @Override 467 public void reinitORM(PageContext pc) throws PageException { 468 // do nothing 469 } 470 471 @Override 472 public Resource getSource() { 473 return source; 474 } 475 }