/**
  * Delegate checking of user credentials to ZfcUser's onboard adapter chain
  *
  * @param  string  $username
  * @param  string  $password
  * @return boolean
  */
 public function checkUserCredentials($username, $password)
 {
     $request = new \Zend\Http\Request();
     $request->getPost()->set('identity', $username);
     $request->getPost()->set('credential', $password);
     $adapterResult = $this->authAdapter->prepareForAuthentication($request);
     if ($adapterResult instanceof \Zend\Stdlib\ResponseInterface) {
         return false;
     }
     $authResult = $this->auth->authenticate($this->authAdapter);
     if (!$authResult->isValid()) {
         $this->authAdapter->resetAdapters();
         return false;
     }
     return true;
 }
예제 #2
0
 /**
  * Set session with authenticated user data
  * 
  * 
  * @access public
  * @param Users/Entity/User $user ,default is null
  * @uses AuthenticationService
  */
 public function newSession($user = null)
 {
     if (is_null($user)) {
         $user = $this->query->findOneBy('Users\\Entity\\User', array('username' => $this->request->getPost('username')));
     }
     $auth = new AuthenticationService();
     $storage = $auth->getStorage();
     // here to add new entries to the session
     $storage->write(array('id' => $user->id, 'firstName' => $user->getFirstName(), 'middleName' => $user->getMiddleName(), 'lastName' => $user->getLastName(), 'name' => $user->getFullName(), 'username' => $user->getUsername(), 'email' => $user->getEmail(), 'photo' => $user->getPhoto(), 'status' => $user->getStatus(), 'roles' => $user->getRolesNames(), 'agreements' => $user->getRolesAgreementsStatus()));
 }
예제 #3
0
파일: PICA.php 프로젝트: tillk/vufind
 /**
  * Patron Login
  *
  * This is responsible for authenticating a patron against the catalog.
  *
  * @param string $barcode  The patron username
  * @param string $password The patron's password
  *
  * @throws ILSException
  * @return mixed          Associative array of patron info on successful login,
  * null on unsuccessful login.
  */
 public function patronLogin($barcode, $password)
 {
     // Build request:
     $request = new \Zend\Http\Request();
     $request->getPost()->set('username', $barcode)->set('password', $password);
     // First try local database:
     $db = new \VuFind\Auth\Database();
     try {
         $user = $db->authenticate($request);
     } catch (\VuFind\Exception\Auth $e) {
         // Next try LDAP:
         $ldap = new \VuFind\Auth\LDAP();
         $user = $ldap->authenticate($request);
     }
     $_SESSION['picauser'] = $user;
     return ['id' => $user->id, 'firstname' => $user->firstname, 'lastname' => $user->lastname, 'email' => $user->email, 'username' => $barcode, 'password' => $password, 'cat_username' => $barcode, 'cat_password' => $password];
 }
    printf("No location header\n");
    exit;
}
$data = $location->uri()->getQueryAsArray();
if (!isset($data['code'])) {
    die("No code in response\n");
}
/*
 * Token request
 */
$client->resetParameters();
$client->setMethod('POST');
$request = new \Zend\Http\Request();
$request->setUri($tokenUri);
$request->setMethod('POST');
$request->getPost()->fromArray(array('grant_type' => 'authorization_code', 'code' => $data['code'], 'redirect_uri' => 'https://dummy', 'client_id' => $clientId));
// Client authentication
$request->getHeaders()->addHeaders(array('Authorization' => $clientAuthorization));
_dumpRequest($request);
$client->setMethod('POST');
$response = $client->send($request);
_dumpResponse($response);
$tokenData = \Zend\Json\Json::decode($response->getContent(), \Zend\Json\Json::TYPE_ARRAY);
_dump($tokenData);
if (isset($tokenData['error'])) {
    die("ERROR\n");
}
/*
 * User info request
 */
$request = new \Zend\Http\Request();
 public function setUp()
 {
     $httpRequest = new \Zend\Http\Request();
     $httpRequest->getPost()->fromArray(array(Request\Token::FIELD_CODE => 'authorization_code_123', Request\Token::FIELD_CLIENT_ID => 'testclient', Request\Token::FIELD_GRANT_TYPE => 'authorization_code', Request\Token::FIELD_REDIRECT_URI => 'http://dummy'));
     $this->request = new Request\Token($httpRequest);
 }