diff --git a/django_auth_ldap_remoteuser/middleware.py b/django_auth_ldap_remoteuser/middleware.py
new file mode 100644
index 0000000000000000000000000000000000000000..7132d475d4b04df15accc6cf1da3a571537f5919
--- /dev/null
+++ b/django_auth_ldap_remoteuser/middleware.py
@@ -0,0 +1,48 @@
+# Based on https://github.com/labd/django-session-timeout
+# Copyright (c) 2017 Michael van Tellingen
+
+import time
+
+from django.conf import settings
+from django.contrib.auth.views import redirect_to_login
+from django.shortcuts import redirect
+
+try:
+	from django.utils.deprecation import MiddlewareMixin
+except ImportError:
+	MiddlewareMixin = object
+
+
+SESSION_TIMEOUT_KEY = "_session_init_timestamp_"
+
+
+class SessionTimeoutMiddleware(MiddlewareMixin):
+	def process_request(self, request):
+		if not hasattr(request, "session") or request.session.is_empty():
+			return
+
+		init_time = request.session.setdefault(SESSION_TIMEOUT_KEY, time.time())
+
+		expire_seconds = getattr(
+			settings, "SESSION_EXPIRE_SECONDS", settings.SESSION_COOKIE_AGE
+		)
+
+		session_is_expired = time.time() - init_time > expire_seconds
+
+		if session_is_expired:
+			request.session.flush()
+			redirect_url = getattr(settings, "SESSION_TIMEOUT_REDIRECT", None)
+			if redirect_url:
+				return redirect(redirect_url)
+			else:
+				return redirect_to_login(next=request.path)
+
+		expire_since_last_activity = getattr(
+			settings, "SESSION_EXPIRE_AFTER_LAST_ACTIVITY", False
+		)
+		grace_period = getattr(
+			settings, "SESSION_EXPIRE_AFTER_LAST_ACTIVITY_GRACE_PERIOD", 1
+		)
+
+		if expire_since_last_activity and time.time() - init_time > grace_period:
+			request.session[SESSION_TIMEOUT_KEY] = time.time()
diff --git a/setup.py b/setup.py
index d0ba93f689c65a1fba48cc4d62171129683b61e4..0d5b99285612bf21121a9cae79bdfed9dab1a5e9 100644
--- a/setup.py
+++ b/setup.py
@@ -1,7 +1,7 @@
 from setuptools import setup, find_packages
 
 setup(name='django_auth_ldap_remoteuser',
-	version='2.0',
+	version='3.0',
 	description='Combine the RemoteUser and django-auth-ldap backends for django',
 	url='https://git.cccv.de/infra/uffd/django-auth-ldap-remoteuser',
 	author='Andreas Valder',