diff --git a/src/Illuminate/Session/Middleware/StartSession.php b/src/Illuminate/Session/Middleware/StartSession.php index 8079ab9c145a..53f3a16c6ba2 100644 --- a/src/Illuminate/Session/Middleware/StartSession.php +++ b/src/Illuminate/Session/Middleware/StartSession.php @@ -80,7 +80,7 @@ protected function handleRequestWhileBlocking(Request $request, $session, Closur $lockFor = $request->route() && $request->route()->locksFor() ? $request->route()->locksFor() - : 10; + : $this->manager->defaultRouteBlockLockSeconds(); $lock = $this->cache($this->manager->blockDriver()) ->lock('session:'.$session->getId(), $lockFor) @@ -90,7 +90,7 @@ protected function handleRequestWhileBlocking(Request $request, $session, Closur $lock->block( ! is_null($request->route()->waitsFor()) ? $request->route()->waitsFor() - : 10 + : $this->manager->defaultRouteBlockWaitSeconds() ); return $this->handleStatefulRequest($request, $session, $next); diff --git a/src/Illuminate/Session/SessionManager.php b/src/Illuminate/Session/SessionManager.php index 01112f01ecbf..6094627e6ef5 100755 --- a/src/Illuminate/Session/SessionManager.php +++ b/src/Illuminate/Session/SessionManager.php @@ -236,6 +236,26 @@ public function blockDriver() return $this->config->get('session.block_store'); } + /** + * Get the maximum number of seconds the session lock should be held for. + * + * @return int + */ + public function defaultRouteBlockLockSeconds() + { + return $this->config->get('session.block_lock_seconds', 10); + } + + /** + * Get the maximum number of seconds to wait while attempting to acquire a route block session lock. + * + * @return int + */ + public function defaultRouteBlockWaitSeconds() + { + return $this->config->get('session.block_wait_seconds', 10); + } + /** * Get the session configuration. *