hook_permission and control access [how to redirect to the login page if user not logged in]
Easiest way will be specifying this logic in page callback function. example:

function SOME_PAGE_CALLBACK($someArg) {
  if(user_is_anonymous()) {
    drupal_goto('PATH_TO_LOGIN_PAGE');
  }

  // do_something();
}


another way is checking the user in hook_preprocess_page function:

function MY_THEME_preprocess_page(&amp;$variables) {
  if(curent_path() == 'SOME_PATH' &amp;&amp; user_is_anonymous()) {
    drupal_goto('PATH_TO_LOGIN_PAGE');
  }
}


Access callback function checks the user's access to the request and returns boolean value, TRUE or FALSE, if you want to check if the user has an access to the page, you can do somthing like this:

$path = current_path();
if ($router_item = menu_get_item($path)) {
  if (!$router_item['access']) {
    drupal_goto('PATH_TO_LOGIN_PAGE');
  }
}