3 namespace Drupal\Core\Routing;
5 use Drupal\Component\Utility\UrlHelper;
8 * Provides a trait which ensures that a URL is safe to redirect to.
10 trait LocalAwareRedirectResponseTrait {
13 * The request context.
15 * @var \Drupal\Core\Routing\RequestContext
17 protected $requestContext;
22 protected function isLocal($url) {
23 return !UrlHelper::isExternal($url) || UrlHelper::externalIsLocal($url, $this->getRequestContext()->getCompleteBaseUrl());
27 * Returns the request context.
29 * @return \Drupal\Core\Routing\RequestContext
31 protected function getRequestContext() {
32 if (!isset($this->requestContext)) {
33 $this->requestContext = \Drupal::service('router.request_context');
35 return $this->requestContext;
39 * Sets the request context.
41 * @param \Drupal\Core\Routing\RequestContext $request_context
42 * The request context.
46 public function setRequestContext(RequestContext $request_context) {
47 $this->requestContext = $request_context;