public final long isValidUser(String userName, byte encriptedPassword[], String text, String processName) throws ConfigurationException {
		BaseSubscriptionInfo readBaseSubscriptionInfo = new BaseSubscriptionInfo(
				_configurationId, AttributeGroupUsageIdentifications.CONFIGURATION_READ_REQUEST, (short)0
		);

		ConfigTelegram telegram = new AuthentificationRequest(userName, encriptedPassword, text, processName);
		String info = Integer.toString(telegram.hashCode());
		telegram.setInfo(info);
		sendConfigData(readBaseSubscriptionInfo, telegram);

		// Waiting for Answer
		ConfigTelegram responce = null;
		long waitingTime = 0, startTime = System.currentTimeMillis();
		long sleepTime = 10;
		while(waitingTime < CommunicationConstant.MAX_WAITING_TIME_FOR_SYNC_RESPONCE) {
			try {
				synchronized(_pendingResponces) {
					_pendingResponces.wait(sleepTime);
					if(sleepTime < 1000) sleepTime *= 2;
					ListIterator _iterator = _pendingResponces.listIterator(_pendingResponces.size());
					while(_iterator.hasPrevious()) {
						responce = (ConfigTelegram)_iterator.previous();
						if((responce != null) && (responce.getType() == ConfigTelegram.AUTHENTIFICATION_ANSWER_TYPE) && (info.equals(responce.getInfo()))) {
							_iterator.remove();
							try {
								AuthentificationAnswer authentificationAnswer = (AuthentificationAnswer)responce;
								return authentificationAnswer.getUserId();
							}
							catch(ClassCastException ex) {
								ex.printStackTrace();
							}
						}
					}
				}
				waitingTime = System.currentTimeMillis() - startTime;
			}
			catch(InterruptedException ex) {
				ex.printStackTrace();
				break;
			}
		}
		throw new ConfigurationException("Die Konfiguration antwortet nicht");
	}