BortalLocalContextHolder.java 2.27 KB
/*
 * Copyright Codecrew Ry
 * 
 * All rights reserved.
 * 
 * This license applies to any software containing a notice placed by the 
 * copyright holder. Such software is herein referred to as the Software. 
 * This license covers modification, distribution and use of the Software. 
 * 
 * Any distribution and use in source and binary forms, with or without 
 * modification is not permitted without explicit written permission from the 
 * copyright owner. 
 * 
 * A non-exclusive royalty-free right is granted to the copyright owner of the 
 * Software to use, modify and distribute all modifications to the Software in 
 * future versions of the Software. 
 * 
 */
package fi.codecrew.moya.clientutils;

import java.util.HashMap;
import java.util.Map;

import javax.security.auth.login.LoginContext;
import javax.security.auth.login.LoginException;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import fi.codecrew.moya.enums.apps.IAppPermission;


public class BortalLocalContextHolder {

	private static final ThreadLocal<BortalLocalContextHolder> THREAD_WITH_CONTEXT = new ThreadLocal<BortalLocalContextHolder>();
	private boolean ssl = false;


	private static boolean inDevelopmentMode = false;

	private static final Logger logger = LoggerFactory.getLogger(BortalLocalContextHolder.class);

	private BortalLocalContextHolder() {
		super();
	}

	private BortalLocalContextHolder(BortalLocalContextHolder old) {
		super();
		this.ssl = old.ssl;
	}

	public static void cleanupThread() {
		if (THREAD_WITH_CONTEXT != null) {
			THREAD_WITH_CONTEXT.remove();
		}
	}

	private static BortalLocalContextHolder getThread() {
		if (THREAD_WITH_CONTEXT.get() == null) {
			THREAD_WITH_CONTEXT.set(new BortalLocalContextHolder());
		}
		return THREAD_WITH_CONTEXT.get();
	}

	public static BortalLocalContextHolder getInstance() {
		return getThread();
	}

	public static boolean isInDevelopmentMode() {
		return inDevelopmentMode;
	}

	public static void setInDevelopmentMode(boolean developmentMode) {
		inDevelopmentMode = developmentMode;
	}


	public static void copy(BortalLocalContextHolder contextHolder) {
		if (THREAD_WITH_CONTEXT.get() != null) {
			logger.warn("Context for thread is not empty. Received hostname ");
		}
		THREAD_WITH_CONTEXT.set(new BortalLocalContextHolder(contextHolder));
	}

}