/** * Updates the password credential from the POST vars, if the POST parameters * are available. Sets the authentication status to AUTHENTICATION_NEEDED, if credentials have been sent. * * Note: You need to send the password in this POST parameter: * __authentication[TYPO3][FLOW3][Security][Authentication][Token][PasswordToken][password] * * @param \TYPO3\FLOW3\Mvc\ActionRequest $actionRequest The current action request * @return void */ public function updateCredentials(\TYPO3\FLOW3\Mvc\ActionRequest $actionRequest) { if ($actionRequest->getHttpRequest()->getMethod() !== 'POST') { return; } $postArguments = $actionRequest->getInternalArguments(); $password = \TYPO3\FLOW3\Reflection\ObjectAccess::getPropertyPath($postArguments, '__authentication.TYPO3.FLOW3.Security.Authentication.Token.PasswordToken.password'); if (!empty($password)) { $this->credentials['password'] = $password; $this->setAuthenticationStatus(self::AUTHENTICATION_NEEDED); } }
/** * @test */ public function internalArgumentsAreHandledSeparately() { $httpRequest = HttpRequest::create(new Uri('http://robertlemke.com/blog')); $actionRequest = new ActionRequest($httpRequest); $actionRequest->setArgument('__someInternalArgument', 'theValue'); $this->assertFalse($actionRequest->hasArgument('__someInternalArgument')); $this->assertEquals('theValue', $actionRequest->getInternalArgument('__someInternalArgument')); $this->assertEquals(array('__someInternalArgument' => 'theValue'), $actionRequest->getInternalArguments()); }