public ModelAppResponse handleRequest(HTTPRequest request, BufferedReader is) {
		ModelUser user = authenticateUser(request);
		if (isExcludedSecurity(request)) {
			user = (user == null) ? ModelUser.annonymous() : user;
		}

		if (isLoginRequest(request)) {
			return routeLogin(request, user);
		} else if (user == null) {
			return redirectLogin(request);
		} else if (isParametrizedRequest(request)) {
			return routeParametrizedRequest(request, user);
		} else if (isStaticRequest(request)) {
			return routeStatic(request);
		} else if (isRESTRequest(request)) {
			return routeREST(request, user, is);
		}
		// else
		return ModelAppResponse.responseError(new WebServerBadRequestException("Unknown "));
	}