Index: /FCKeditor.Java/branches/2.4/src/main/java/net/fckeditor/FCKeditor.java
===================================================================
--- /FCKeditor.Java/branches/2.4/src/main/java/net/fckeditor/FCKeditor.java	(revision 1477)
+++ /FCKeditor.Java/branches/2.4/src/main/java/net/fckeditor/FCKeditor.java	(revision 1478)
@@ -205,5 +205,4 @@
 	@Override
 	public String toString() {
-		
 		return createHtml();
 	}
@@ -279,3 +278,23 @@
 		return (request != null) ? Compatibility.check(request.getHeader("user-agent")) : false;
 	}
+	
+	/**
+	 * Checks, if the current user is enabled for file browsing.
+	 * 
+	 * @return
+	 * @see {@link ConfigurationHandler#isEnabledForFileBrowsing(HttpServletRequest)}
+	 */
+	public boolean isEnabledForFileBrowsing() {
+		return ConfigurationHandler.isEnabledForFileBrowsing(request);
+	}
+	
+	/**
+	 * Checks, if the current user is enabled for file upload.
+	 * 
+	 * @return
+	 * @see {@link ConfigurationHandler#isEnabledForFileUpload(HttpServletRequest)}
+	 */
+	public boolean isEnabledForFileUpload() {
+		return ConfigurationHandler.isEnabledForFileUpload(request);
+	}
 }
Index: /FCKeditor.Java/branches/2.4/src/main/java/net/fckeditor/ISessionData.java
===================================================================
--- /FCKeditor.Java/branches/2.4/src/main/java/net/fckeditor/ISessionData.java	(revision 1477)
+++ /FCKeditor.Java/branches/2.4/src/main/java/net/fckeditor/ISessionData.java	(revision 1478)
@@ -22,16 +22,21 @@
 
 import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
 
 import net.fckeditor.handlers.ConfigurationHandler;
 
 /**
- * Interface to provide session based functionality to FCKeditor.Java. Currently, the implemeted
- * class has to implement the following:
+ * Interface to provide session or request based functionality to FCKeditor.Java. Currently, the
+ * implemeted class has to implement the following:
  * <ul>
- * <li>{@link #isAuthenticate(HttpServletRequest)}: User authentication based on
- * {@link HttpServletRequest}, so you can use {@link HttpSession} to identify an user for example.</li>
+ * <li>{@link #isEnabledForFileBrowsing(HttpServletRequest)}: Enables the user to browse/select
+ * file.</li>
+ * <li>{@link #isEnabledForFileUpload(HttpServletRequest)}: Enables the user to upload files.</li>
  * <li>{@link #getBaseDir(HttpServletRequest)}: Constructs an user based 'BaseDir'.</li>
  * </ul>
+ * {@link #isEnabledForFileBrowsing(HttpServletRequest)} and
+ * {@link #isEnabledForFileUpload(HttpServletRequest)} are authentification methodes for different
+ * kinds of user actions.<br />
+ * <br />
+ *  This class is managed by {@link ConfigurationHandler}.<br />
  * <br />
  * <b>Warning for commiters: </b>You have to awake that every change of this interface could break
@@ -44,5 +49,5 @@
 
 	/**
-	 * Authenticates the current user.<br>
+	 * Authenticates/enables the current user for uploading file.<br>
 	 * If the implemantation doesn't bother you, just return <code>true</code>.
 	 * 
@@ -50,5 +55,14 @@
 	 * @return
 	 */
-	public boolean isAuthenticate(final HttpServletRequest servletRequest);
+	public boolean isEnabledForFileUpload(final HttpServletRequest servletRequest);
+
+	/**
+	 * Authenticates/enables the current user for browsing files.<br>
+	 * If the implemantation doesn't bother you, just return <code>true</code>.
+	 * 
+	 * @param servletRequest
+	 * @return
+	 */
+	public boolean isEnabledForFileBrowsing(final HttpServletRequest servletRequest);
 
 	/**
Index: /FCKeditor.Java/branches/2.4/src/main/java/net/fckeditor/connector/ConnectorServlet.java
===================================================================
--- /FCKeditor.Java/branches/2.4/src/main/java/net/fckeditor/connector/ConnectorServlet.java	(revision 1477)
+++ /FCKeditor.Java/branches/2.4/src/main/java/net/fckeditor/connector/ConnectorServlet.java	(revision 1478)
@@ -92,10 +92,8 @@
 	public void init() throws ServletException, IllegalArgumentException {
 		// read the required parameters
-		ConfigurationHandler.setConnectorEnabled(getInitParameter("enabled"));
 		ConfigurationHandler.constructSessionDataObject(getInitParameter("SessionData-class"));
-		if (getInitParameter("ForceSingleExtension") != null)
-			ConfigurationHandler.setForceSingleExtension(getInitParameter("ForceSingleExtension"));
 
 		// read the optional parameters
+		ConfigurationHandler.setForceSingleExtension(getInitParameter("ForceSingleExtension"));
 		if (getInitParameter("baseDir") != null) // TODO should 'baseDir' contains '..' ??
 			ConfigurationHandler.setBaseDir(getInitParameter("baseDir"));
@@ -110,14 +108,10 @@
 		        getInitParameter("DeniedExtensionsMedia"));
 
-		if (!ConfigurationHandler.isConnectorEnabled()) {
-			logger.warn("*** ConnectorServlet isn't enabled!");
-		} else {
-			// check, if 'baseDir' exists
-			// info, we can make the default dir only at this point, because we haven't any request object yet!
-			String realBaseDir = getServletContext().getRealPath(ConfigurationHandler.getDefaultBaseDir());
-			File baseFile = new File(realBaseDir);
-			if (!baseFile.exists()) {
-				baseFile.mkdirs();
-			}
+		// check, if 'baseDir' exists
+		String realBaseDir = getServletContext().getRealPath(
+		        ConfigurationHandler.getDefaultBaseDir());
+		File baseFile = new File(realBaseDir);
+		if (!baseFile.exists()) {
+			baseFile.mkdirs();
 		}
 
@@ -131,5 +125,5 @@
 	 * connector?Command=CommandName&Type=ResourceType&CurrentFolder=FolderPath<br>
 	 * <br>
-	 * It execute the command and then return the results to the client in XML format.
+	 * It executes the command and then return the results to the client in XML format.
 	 * 
 	 */
@@ -157,5 +151,5 @@
 
 		File currentDir = new File(currentDirPath);
-		if (!currentDir.exists() && ConfigurationHandler.isConnectorEnabled()) {
+		if (!currentDir.exists() && ConfigurationHandler.isEnabledForFileBrowsing(request)) {
 			currentDir.mkdirs();
 			logger.debug("Dir successfull created: {}", currentDirPath);
@@ -174,6 +168,6 @@
 		        .getContextPath().concat(currentPath));
 
-		if (!ConfigurationHandler.isConnectorEnabled()) {
-			createResponse("1", "This connector is disabled. Please check the web.xml!", root,
+		if (!ConfigurationHandler.isEnabledForFileBrowsing(request)) {
+			createResponse("1", "The current user isn't authorized for file browsing!", root,
 			        document);
 		} else if (commandStr.equals("GetFolders")) {
@@ -261,7 +255,7 @@
 		UploadResponse ur = null;
 
-		if (!ConfigurationHandler.isConnectorEnabled()) {
+		if (!ConfigurationHandler.isEnabledForFileUpload(request)) {
 			ur = new UploadResponse(UploadResponse.EN_SECURITY_ERROR, null, null,
-			        "This connector is disabled. Please check the web.xml!");
+			        "The current user isn't authorized for uploading files!");
 		} else if (isEmpty(commandStr) || isEmpty(currentFolderStr) || isEmpty(typeStr))
 			ur = UploadResponse.UR_BAD_REQUEST;
Index: /FCKeditor.Java/branches/2.4/src/main/java/net/fckeditor/handlers/ConfigurationHandler.java
===================================================================
--- /FCKeditor.Java/branches/2.4/src/main/java/net/fckeditor/handlers/ConfigurationHandler.java	(revision 1477)
+++ /FCKeditor.Java/branches/2.4/src/main/java/net/fckeditor/handlers/ConfigurationHandler.java	(revision 1478)
@@ -34,11 +34,21 @@
 
 /**
- * Static configuration handler object, which provides getters and setters for basic values like
- * fckeditor dir, base dir (user dir) and defaults for height, width and toolbar of the editor. All
- * values are preset by the defaults defined in default.properties. This object is used everywhere
- * these values are needed. The defaults can be changed by calling the corresponding setter methods.
+ * This is a static configuration object, which provides access to the following default values:
+ * <ul>
+ * <li>The directory of the fckeditor.</li>
+ * <li>The width and height of the fckeditor.</li>
+ * <li>The toolbar of the fckeditor.</li>
+ * <li>The base dir (user dir).</li>
+ * <li>Some session based method calls. See comment above!</li>
+ * </ul>
+ * These values are preset by the defaults defined in default.properties and can be changed by
+ * calling its corresponding setters. Keep in mind, that these values are applied to ALL instances
+ * of the editor, except they are overwritten by the editor's tags of course. <br />
  * <br />
- * If the {@link ISessionData} class is set, {@link #getBaseDir(HttpServletRequest)} is calling
- * {@link ISessionData#getBaseDir(HttpServletRequest)} to get the base dir.
+ * Something special is {@link ISessionData}. The implemented class provides some session based data.
+ * See {@link ISessionData} for additional informations. For example, to get a user based base dir,
+ * for each request {@link #getBaseDir(HttpServletRequest)} is calling. If 'sessionData' is set,
+ * {@link ISessionData#getBaseDir(HttpServletRequest)} will be returned, otherwise the default base
+ * dir.
  * 
  * @version $Id:ConfigurationHandler.java 1099 2008-11-06 15:01:50Z th-schwarz $
@@ -55,5 +65,4 @@
 	private static String fckEditorToolbarSet;
 	private static boolean forceSingleExtension;
-	private static boolean connectorEnabled = false;
 
 	static {
@@ -80,9 +89,10 @@
 	 * Getter for the base dir (using for user files).
 	 * 
-	 * @return If the {@link ISessionData} is set, then it's dir getter is called, or base dir.
+	 * @return {@link ISessionData#getBaseDir(HttpServletRequest)} or the default base dir, if
+	 *         {@link ISessionData}} isn't set.
 	 */
 	public static String getBaseDir(final HttpServletRequest servletRequest) {
 		if (sessionData == null || sessionData.getBaseDir(servletRequest) == null)
-			return baseDir;
+			return getDefaultBaseDir();
 		return sessionData.getBaseDir(servletRequest);
 	}
@@ -98,5 +108,6 @@
 
 	/**
-	 * Setter for the base dir (using for user files).
+	 * Setter for the base dir (using for user files). If param 'baseDir' is empty, the property
+	 * leaves untouched.
 	 * 
 	 * @param baseDir
@@ -104,17 +115,19 @@
 	 */
 	public static void setBaseDir(final String baseDir) {
-		ConfigurationHandler.baseDir = baseDir;
+		if (Utils.isEmpty(baseDir))
+			ConfigurationHandler.baseDir = baseDir;
 	}
 
 	/**
 	 * Constructs an object which implemented the interface {@link ISessionData}. If the
-	 * constuction fails, the connector will be disabled.
-	 * 
-	 * @param fqcn The fully-qualified class name.
+	 * constuction fails, any user action of the connector is disabled.
+	 * 
+	 * @param fqcn
+	 *            The fully-qualified class name.
 	 */
 	public static void constructSessionDataObject(final String fqcn) {
 		if (Utils.isEmpty(fqcn)) {
-			logger.warn("Class name is empty, ConnectorServlet will be disabled!");
-			connectorEnabled = false;
+			logger
+			        .warn("Class name is empty, any user action of the ConnectorServlet is disabled!");
 			return;
 		}
@@ -125,6 +138,5 @@
 		} catch (Exception e) {
 			logger.error("Couldn't instanciate the class [".concat(fqcn).concat(
-			        "], ConnectorServlet will be disabled!"), e);
-			connectorEnabled = false;
+			        "], any user action of the ConnectorServlet is disabled!"), e);
 		}
 	}
@@ -226,13 +238,11 @@
 
 	/**
-	 * Just a wrapper to {@link #setForceSingleExtension(boolean)}.
+	 * Just a wrapper to {@link #setForceSingleExtension(boolean)}. If argument
+	 * 'forceSingleExtension' is empty, the property leaves untouched.
 	 * 
 	 * @param forceSingleExtension
 	 */
 	public static void setForceSingleExtension(final String forceSingleExtension) {
-		if (Utils.isEmpty(forceSingleExtension))
-			setForceSingleExtension(Boolean.valueOf(defaultProperties
-			        .getProperty("fckeditor.forcesingleextension")));
-		else
+		if (Utils.isNotEmpty(forceSingleExtension))
 			setForceSingleExtension(Boolean.parseBoolean(forceSingleExtension));
 	}
@@ -258,32 +268,23 @@
 
 	/**
-	 * Specifies if the Connector is enabled or not.
-	 * 
-	 * @return True/false
-	 */
-	public static boolean isConnectorEnabled() {
-		return connectorEnabled;
-	}
-
-	/**
-	 * Setter for enabling/disabling the connector.
-	 * 
-	 * @param enabled
-	 *            the enabled to set
-	 */
-	public static void setConnectorEnabled(boolean enabled) {
-		ConfigurationHandler.connectorEnabled = enabled;
-	}
-
-	/**
-	 * Just a wrapper to {@link #setConnectorEnabled(boolean)}.
-	 * 
-	 * @param enabled
-	 */
-	public static void setConnectorEnabled(final String enabled) {
-		if (Utils.isEmpty(enabled))
-			setConnectorEnabled(false);
-		else
-			setConnectorEnabled(Boolean.parseBoolean(enabled));
+	 * Just a wrapper to {@link ISessionData.isEnabledForFileUpload(HttpServletRequest)}.
+	 * 
+	 * @param servletRequest
+	 * @return {@link ISessionData#isEnabledForFileUpload(HttpServletRequest)} or false, if
+	 *         sessionData isn't set.
+	 */
+	public static boolean isEnabledForFileUpload(final HttpServletRequest servletRequest) {
+		return (sessionData != null && sessionData.isEnabledForFileUpload(servletRequest));
+	}
+
+	/**
+	 * Just a wrapper to {@link ISessionData.isEnabledForFileBrowsing(HttpServletRequest)}.
+	 * 
+	 * @param servletRequest
+	 * @return {@link ISessionData#isEnabledForFileBrowsing(HttpServletRequest)} or false, if
+	 *         sessionData isn't set.
+	 */
+	public static boolean isEnabledForFileBrowsing(final HttpServletRequest servletRequest) {
+		return (sessionData != null && sessionData.isEnabledForFileBrowsing(servletRequest));
 	}
 }
Index: /FCKeditor.Java/branches/2.4/src/main/java/net/fckeditor/impl/SessionData.java
===================================================================
--- /FCKeditor.Java/branches/2.4/src/main/java/net/fckeditor/impl/SessionData.java	(revision 1477)
+++ /FCKeditor.Java/branches/2.4/src/main/java/net/fckeditor/impl/SessionData.java	(revision 1478)
@@ -33,16 +33,22 @@
 
 	/* (non-Javadoc)
-	 * @see net.fckeditor.ISessionData#check(javax.servlet.http.HttpServletRequest)
-	 */
-	public boolean isAuthenticate(HttpServletRequest servletRequest) {
-		return true;
-	}
+     * @see net.fckeditor.ISessionData#getBaseDir(javax.servlet.http.HttpServletRequest)
+     */
+    public String getBaseDir(final HttpServletRequest servletRequest) {
+	    return null;
+    }
 
 	/* (non-Javadoc)
-	 * @see net.fckeditor.ISessionData#getBaseDir(javax.servlet.http.HttpServletRequest)
-	 */
-	public String getBaseDir(HttpServletRequest servletRequest) {
-		return null;
-	}
+     * @see net.fckeditor.ISessionData#isEnabledForFileBrowsing(javax.servlet.http.HttpServletRequest)
+     */
+    public boolean isEnabledForFileBrowsing(final HttpServletRequest servletRequest) {
+	    return true;
+    }
 
+	/* (non-Javadoc)
+     * @see net.fckeditor.ISessionData#isEnabledForFileUpload(javax.servlet.http.HttpServletRequest)
+     */
+    public boolean isEnabledForFileUpload(final HttpServletRequest servletRequest) {
+	    return true;
+    }	
 }
Index: /FCKeditor.Java/branches/2.4/src/main/webapp/WEB-INF/web.xml
===================================================================
--- /FCKeditor.Java/branches/2.4/src/main/webapp/WEB-INF/web.xml	(revision 1477)
+++ /FCKeditor.Java/branches/2.4/src/main/webapp/WEB-INF/web.xml	(revision 1478)
@@ -9,5 +9,5 @@
 		parameters, if you need different ones.
 		New init parameter:
-			- 'ForceSingleExtension': Default is true.
+			- 'ForceSingleExtension': Otional / Default is true.
 			  (Due to security issues with Apache modules, it is recommended to leave this setting untouched!)
 			- 'SessionData-class'
@@ -23,14 +23,8 @@
 			net.fckeditor.connector.ConnectorServlet
 		</servlet-class>
-		 
-		<init-param>
-			<param-name>enabled</param-name>
-			<param-value>true</param-value>
-		</init-param>
 		<init-param>
 			<param-name>SessionData-class</param-name>
 			<param-value>net.fckeditor.impl.SessionData</param-value>
 		</init-param>
-		 
 		<load-on-startup>1</load-on-startup>
 	</servlet>
Index: /FCKeditor.Java/branches/2.4/src/main/webapp/jsp/sample01.jsp
===================================================================
--- /FCKeditor.Java/branches/2.4/src/main/webapp/jsp/sample01.jsp	(revision 1477)
+++ /FCKeditor.Java/branches/2.4/src/main/webapp/jsp/sample01.jsp	(revision 1478)
@@ -43,4 +43,9 @@
 		full features enabled.</p>
 		<p>Basic FCKeditor informations:</p>
+		<ul>
+			<li>Browser is compatible: <%out.print(fckEditor.isCompatibleBrowser());%></li>
+			<li>User is enabled for file browsing: <%out.print(fckEditor.isEnabledForFileBrowsing());%>
+			<li>User is enabled for file upload: <%out.print(fckEditor.isEnabledForFileUpload());%>
+		</ul>
 		<hr />
 		<form action="sampleposteddata.jsp" method="get" target="_blank">
