code: protected function prepare($objRootPage=null)
  	{
  		// Use the given root page object if available (thanks to Andreas Schempp)
  		if ($objRootPage === null)
  		{
  			$objRootPage = $this->getRootPageFromUrl();
  		}
  		else
  		{
  			$objRootPage = PageModel::findPublishedById(\is_int($objRootPage) ? $objRootPage : $objRootPage->id);
  		}
  
  		// Look for a 401 page
  		$obj401 = PageModel::find401ByPid($objRootPage->id);
  
  		// Die if there is no page at all
  		if (null === $obj401)
  		{
  			throw new InsufficientAuthenticationException('Not authenticated');
  		}
  
  		// Forward to another page
  		if ($obj401->autoforward && $obj401->jumpTo)
  		{
  			$objNextPage = PageModel::findPublishedById($obj401->jumpTo);
  
  			if (null === $objNextPage)
  			{
  				$this->log('Forward page ID "' . $obj401->jumpTo . '" does not exist', __METHOD__, TL_ERROR);
  				throw new ForwardPageNotFoundException('Forward page not found');
  			}
  
  			$this->redirect($objNextPage->getFrontendUrl(), (($obj401->redirect == 'temporary') ? 302 : 301));
  		}
  
  		return $obj401;
  	}
docs: Prepare the output
  
  @param PageModel|integer $objRootPage
  
  @return PageModel
  
  @throws InsufficientAuthenticationException
  
  @internal Do not call this method in your code. It will be made private in Contao 5.0.