Example #1
0
 public function testCreate()
 {
     $this->_expectedObject = $this->getMockBuilder('\\Magento\\Framework\\App\\ResponseInterface')->getMock();
     $arguments = [['property' => 'value']];
     $this->_objectManagerMock->expects($this->once())->method('create')->with('Magento\\Framework\\App\\ResponseInterface', $arguments)->will($this->returnValue($this->_expectedObject));
     $this->assertEquals($this->_expectedObject, $this->_model->create($arguments));
 }
 /**
  * Auto-redirect to base url (without SID) if the requested url doesn't match it.
  * By default this feature is enabled in configuration.
  *
  * @param \Magento\Framework\App\FrontController $subject
  * @param callable $proceed
  * @param \Magento\Framework\App\RequestInterface $request
  *
  * @return \Magento\Framework\App\ResponseInterface
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  */
 public function aroundDispatch(\Magento\Framework\App\FrontController $subject, \Closure $proceed, \Magento\Framework\App\RequestInterface $request)
 {
     if (!$request->isPost() && $this->_isBaseUrlCheckEnabled()) {
         $baseUrl = $this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB, $this->_storeManager->getStore()->isCurrentlySecure());
         if ($baseUrl) {
             $uri = parse_url($baseUrl);
             if (!$this->_isBaseUrlCorrect($uri, $request)) {
                 $redirectUrl = $this->_url->getRedirectUrl($this->_url->getUrl(ltrim($request->getPathInfo(), '/'), ['_nosid' => true]));
                 $redirectCode = (int) $this->_scopeConfig->getValue('web/url/redirect_to_base', \Magento\Store\Model\ScopeInterface::SCOPE_STORE) !== 301 ? 302 : 301;
                 $response = $this->_responseFactory->create();
                 $response->setRedirect($redirectUrl, $redirectCode);
                 return $response;
             }
         }
     }
     $request->setDispatched(false);
     return $proceed($request);
 }
Example #3
0
 /**
  * Check that request uses https protocol if it should.
  * Function redirects user to correct URL if needed.
  *
  * @param \Magento\Framework\App\RequestInterface $request
  * @param string $path
  * @return void
  */
 protected function _checkShouldBeSecure(\Magento\Framework\App\RequestInterface $request, $path = '')
 {
     if ($request->getPost()) {
         return;
     }
     if ($this->_shouldBeSecure($path) && !$request->isSecure()) {
         $url = $this->_getCurrentSecureUrl($request);
         if ($this->_shouldRedirectToSecure()) {
             $url = $this->_url->getRedirectUrl($url);
         }
         $this->_responseFactory->create()->setRedirect($url)->sendResponse();
         exit;
     }
 }