diff --git a/auth.py b/auth.py
index 277af476b26e735f74d5fd37c712f0f1bdf6d470..f1063f536c1ff2f344fa6ff40c102983a794f64c 100644
--- a/auth.py
+++ b/auth.py
@@ -97,6 +97,13 @@ class StaticUserManager:
             for (username, password, groups) in users
         }
 
+    def __repr__(self):
+        users = [
+            (username, self.passwords[username], self.groups[username])
+            for username in self.passwords
+        ]
+        return "StaticUserManager({})".format(users)
+
     def authenticate(self, username, password):
         return (username in self.passwords
                 and self.passwords[username] == password)
@@ -118,6 +125,17 @@ try:
             self.user_dn = user_dn
             self.group_dn = group_dn
 
+        def __repr__(self):
+            return (
+                "LdapManager(host='{host}', user_dn='{user_dn}', "
+                "group_dn='{group_dn}', port={port}, use_ssl={use_ssl})"
+                .format(
+                    host=self.server.host,
+                    user_dn=self.user_dn,
+                    group_dn=self.group_dn,
+                    port=self.server.port,
+                    use_ssl=self.server.ssl))
+
         def authenticate(self, username, password):
             try:
                 connection = ldap3.Connection(
@@ -163,6 +181,24 @@ try:
             self.domain = domain
             self.user_dn = user_dn
             self.group_dn = group_dn
+            self.ca_cert = ca_cert
+            self.host = host
+            self.port = port
+            self.use_ssl = use_ssl
+
+        def __repr__(self):
+            return (
+                "ADManager(host='{host}', domain='{domain}', "
+                "user_dn='{user_dn}', group_dn='{group_dn}', "
+                "port={port}, use_ssl={use_ssl}, ca_cert='{ca_cert}')"
+                .format(
+                    host=self.host,
+                    domain=self.domain,
+                    user_dn=self.user_dn,
+                    group_dn=self.group_dn,
+                    port=self.port,
+                    use_ssl=self.use_ssl,
+                    ca_cert=self.ca_cert))
 
         def prepare_connection(self, username=None, password=None):
             if username is not None and password is not None:
@@ -229,6 +265,9 @@ try:
         def __init__(self):
             self.pam = pam.pam()
 
+        def __repr__(self):
+            return "PAMManager()"
+
         def authenticate(self, username, password):
             return self.pam.authenticate(username, password)
 
@@ -241,5 +280,6 @@ try:
         def all_groups(self, username, password):
             for group in grp.getgrall():
                 yield group.gr_name
+
 except ImportError:
     pass