Hiya,
Pardon my ignorance, but I've tried for quite some time now to get Trac to use AD for logins.
When I go to the /login page, I get an error message:
Cannot find implementation(s) of the IPasswordStore interface named DirAuthStore. Please check that the Component is enabled or update the option [account-manager] password_store in trac.ini.
And I've been banging my head against the wall trying to figure out what that means. I think I've already set that up in trac.ini.
Any help and advice is much appreciated, thanks.
This is what I have installed:
(tracinst) www-data@amgtrac01:~$ pip list installed
Package Version
------------------ ---------
Babel 2.13.1
docutils 0.20.1
html5lib 1.1
Jinja2 3.1.2
MarkupSafe 2.1.3
pip 23.3.1
psycopg2-binary 2.9.9
pyasn1 0.5.1
pyasn1-modules 0.3.0
Pygments 2.17.2
python-ldap 3.4.4
regex 2023.10.3
setuptools 66.1.1
six 1.16.0
textile 4.0.2
Trac 1.6
TracAccountManager 0.6.dev0
TracPermRedirect 3.0
webencodings 0.5.1
(tracinst) www-data@amgtrac01:~$
And this is my trac.ini(well, only the parts related to this) -with line numbers:
1 # -*- coding: utf-8 -*-
2
3 [account-manager]
4 cache_ttl = 90
5 cache_memsize = 400
6 cache_memsize_warn = 300
7 dir_pagesize = 5000
8 dir_basedn = ou=jtl,dc=jtl,dc=local
9 dir_binddn = cn=JTLLDAP,ou=ServiceAccounts,dc=jtl,dc=local
10 dir_bindpw = XXXXXXXXXXXXXX
11 dir_charset = utf-8
12 dir_scope = 1
13 dir_timeout = 5
14 dir_uri = ldaps://
10.23.240.15:636
15 email_attr = mail
16 group_basedn = ou=Groups,ou=jtl,dc=jtl,dc=local
17 group_validusers = @GRP_CAT2_Clearance
18 group_expand = 1
19 name_attr = displayName
20 password_store = DirAuthStore
21 user_attr = sAMAccountName
...
45 [components]
46 acct_mgr.adauth = enabled
47 acct_mgr.api.accountmanager = enabled
48 acct_mgr.htfile.htpasswdstore = disabled
49 acct_mgr.http.httpauthstore = disabled
50 acct_mgr.pwhash.htdigesthashmethod = disabled
51 acct_mgr.register.basiccheck = disabled
52 acct_mgr.register.bottrapcheck = disabled
53 acct_mgr.register.emailcheck = disabled
54 acct_mgr.register.emailverificationmodule = disabled
55 acct_mgr.register.regexpcheck = disabled
56 acct_mgr.register.usernamepermcheck = disabled
57 acct_mgr.web_ui.accountmodule = disabled
58 acct_mgr.web_ui.loginmodule = enabled
59 acct_mgr.web_ui.resetpwstore = disabled
60 tracext.dirauth.api.userextensiblepermissionstore = enabled
61 tracext.dirauth.auth.dirauthstore = enabled
62 tracext.dirauth.db.directoryauthpluginsetup = enabled
63 permredirect.filter.permredirectmodule = enabled
64 trac.web.auth.loginmodule = disabled
And this is the debug log output, also with line numbers:
1
2 2023-12-12 12:54:00,924 Trac[env] INFO: -------------------------------- environment startup [Trac 1.6] --------------------------------
3 2023-12-12 12:54:00,942 Trac[loader] DEBUG: Loading plugin "acct_mgr.admin" from "/var/www/tracinst/lib/python3.11/site-packages"
4 2023-12-12 12:54:01,057 Trac[loader] DEBUG: Loading plugin "acct_mgr.api" from "/var/www/tracinst/lib/python3.11/site-packages"
5 2023-12-12 12:54:01,057 Trac[loader] DEBUG: Loading plugin "acct_mgr.db" from "/var/www/tracinst/lib/python3.11/site-packages"
6 2023-12-12 12:54:01,058 Trac[loader] DEBUG: Loading plugin "acct_mgr.htfile" from "/var/www/tracinst/lib/python3.11/site-packages"
7 2023-12-12 12:54:01,059 Trac[loader] DEBUG: Loading plugin "acct_mgr.http" from "/var/www/tracinst/lib/python3.11/site-packages"
8 2023-12-12 12:54:01,059 Trac[loader] DEBUG: Loading plugin "acct_mgr.macros" from "/var/www/tracinst/lib/python3.11/site-packages"
9 2023-12-12 12:54:01,060 Trac[loader] DEBUG: Loading plugin "acct_mgr.notification" from "/var/www/tracinst/lib/python3.11/site-packages"
10 2023-12-12 12:54:01,060 Trac[loader] DEBUG: Loading plugin "acct_mgr.opt.announcer.uid_chg" from "/var/www/tracinst/lib/python3.11/site-packages"
11 2023-12-12 12:54:01,070 Trac[loader] DEBUG: Skipping "acct_mgr.opt.announcer.uid_chg = acct_mgr.opt.announcer.uid_chg [announcer]": DistributionNotFound: The 'TracAnnouncer; extra == "announcer"' di
11 stribution was not found and is required by the application
12 2023-12-12 12:54:01,070 Trac[loader] DEBUG: Loading plugin "acct_mgr.opt.radius" from "/var/www/tracinst/lib/python3.11/site-packages"
13 2023-12-12 12:54:01,080 Trac[loader] DEBUG: Skipping "acct_mgr.opt.radius = acct_mgr.opt.radius [pyrad]": DistributionNotFound: The 'Pyrad; extra == "pyrad"' distribution was not found and is requir
13 ed by the application
14 2023-12-12 12:54:01,080 Trac[loader] DEBUG: Loading plugin "acct_mgr.opt.tracforms.uid_chg" from "/var/www/tracinst/lib/python3.11/site-packages"
15 2023-12-12 12:54:01,089 Trac[loader] DEBUG: Skipping "acct_mgr.opt.tracforms.uid_chg = acct_mgr.opt.tracforms.uid_chg [forms]": DistributionNotFound: The 'TracForms; extra == "forms"' distribution w
15 as not found and is required by the application
16 2023-12-12 12:54:01,089 Trac[loader] DEBUG: Loading plugin "acct_mgr.opt.tracscreenshots.uid_chg" from "/var/www/tracinst/lib/python3.11/site-packages"
17 2023-12-12 12:54:01,098 Trac[loader] DEBUG: Skipping "acct_mgr.opt.tracscreenshots.uid_chg = acct_mgr.opt.tracscreenshots.uid_chg [screenshots]": DistributionNotFound: The 'TracScreenshots; extra ==
17 "screenshots"' distribution was not found and is required by the application
18 2023-12-12 12:54:01,098 Trac[loader] DEBUG: Loading plugin "acct_mgr.opt.tracvote.uid_chg" from "/var/www/tracinst/lib/python3.11/site-packages"
19 2023-12-12 12:54:01,107 Trac[loader] DEBUG: Skipping "acct_mgr.opt.tracvote.uid_chg = acct_mgr.opt.tracvote.uid_chg [vote]": DistributionNotFound: The 'TracVote; extra == "vote"' distribution was no
19 t found and is required by the application
20 2023-12-12 12:54:01,107 Trac[loader] DEBUG: Loading plugin "acct_mgr.pwhash" from "/var/www/tracinst/lib/python3.11/site-packages"
21 2023-12-12 12:54:01,108 Trac[loader] DEBUG: Loading plugin "acct_mgr.register" from "/var/www/tracinst/lib/python3.11/site-packages"
22 2023-12-12 12:54:01,108 Trac[loader] DEBUG: Loading plugin "acct_mgr.svnserve" from "/var/www/tracinst/lib/python3.11/site-packages"
23 2023-12-12 12:54:01,109 Trac[loader] DEBUG: Loading plugin "acct_mgr.web_ui" from "/var/www/tracinst/lib/python3.11/site-packages"
24 2023-12-12 12:54:01,110 Trac[loader] DEBUG: Loading plugin "permredirect.filter" from "/var/www/tracinst/lib/python3.11/site-packages"
25 2023-12-12 12:54:01,112 Trac[loader] DEBUG: Loading plugin "trac.about" from "/var/www/tracinst/lib/python3.11/site-packages"
26 2023-12-12 12:54:01,113 Trac[loader] DEBUG: Loading plugin "trac.admin.console" from "/var/www/tracinst/lib/python3.11/site-packages"
27 2023-12-12 12:54:01,116 Trac[loader] DEBUG: Loading plugin "trac.admin.web_ui" from "/var/www/tracinst/lib/python3.11/site-packages"
28 2023-12-12 12:54:01,116 Trac[loader] DEBUG: Loading plugin "trac.attachment" from "/var/www/tracinst/lib/python3.11/site-packages"
29 2023-12-12 12:54:01,116 Trac[loader] DEBUG: Loading plugin "trac.db.mysql" from "/var/www/tracinst/lib/python3.11/site-packages"
30 2023-12-12 12:54:01,126 Trac[loader] DEBUG: Skipping "trac.db.mysql = trac.db.mysql_backend [mysql]": DistributionNotFound: The 'PyMySQL; extra == "mysql"' distribution was not found and is required
30 by the application
31 2023-12-12 12:54:01,126 Trac[loader] DEBUG: Loading plugin "trac.db.postgres" from "/var/www/tracinst/lib/python3.11/site-packages"
32 2023-12-12 12:54:01,162 Trac[loader] DEBUG: Loading plugin "trac.db.sqlite" from "/var/www/tracinst/lib/python3.11/site-packages"
33 2023-12-12 12:54:01,163 Trac[loader] DEBUG: Loading plugin "trac.mimeview.patch" from "/var/www/tracinst/lib/python3.11/site-packages"
34 2023-12-12 12:54:01,163 Trac[loader] DEBUG: Loading plugin "trac.mimeview.pygments" from "/var/www/tracinst/lib/python3.11/site-packages"
35 2023-12-12 12:54:01,176 Trac[loader] DEBUG: Loading plugin "trac.mimeview.rst" from "/var/www/tracinst/lib/python3.11/site-packages"
36 2023-12-12 12:54:01,213 Trac[loader] DEBUG: Loading plugin "trac.mimeview.txtl" from "/var/www/tracinst/lib/python3.11/site-packages"
37 2023-12-12 12:54:01,249 Trac[loader] DEBUG: Loading plugin "trac.notification.api" from "/var/www/tracinst/lib/python3.11/site-packages"
38 2023-12-12 12:54:01,249 Trac[loader] DEBUG: Loading plugin "trac.notification.mail" from "/var/www/tracinst/lib/python3.11/site-packages"
39 2023-12-12 12:54:01,250 Trac[loader] DEBUG: Loading plugin "trac.notification.prefs" from "/var/www/tracinst/lib/python3.11/site-packages"
40 2023-12-12 12:54:01,251 Trac[loader] DEBUG: Loading plugin "trac.prefs" from "/var/www/tracinst/lib/python3.11/site-packages"
41 2023-12-12 12:54:01,251 Trac[loader] DEBUG: Loading plugin "trac.search" from "/var/www/tracinst/lib/python3.11/site-packages"
42 2023-12-12 12:54:01,252 Trac[loader] DEBUG: Loading plugin "trac.ticket.admin" from "/var/www/tracinst/lib/python3.11/site-packages"
43 2023-12-12 12:54:01,256 Trac[loader] DEBUG: Loading plugin "trac.ticket.batch" from "/var/www/tracinst/lib/python3.11/site-packages"
44 2023-12-12 12:54:01,257 Trac[loader] DEBUG: Loading plugin "trac.ticket.notification" from "/var/www/tracinst/lib/python3.11/site-packages"
45 2023-12-12 12:54:01,257 Trac[loader] DEBUG: Loading plugin "trac.ticket.query" from "/var/www/tracinst/lib/python3.11/site-packages"
46 2023-12-12 12:54:01,259 Trac[loader] DEBUG: Loading plugin "trac.ticket.report" from "/var/www/tracinst/lib/python3.11/site-packages"
47 2023-12-12 12:54:01,261 Trac[loader] DEBUG: Loading plugin "trac.ticket.roadmap" from "/var/www/tracinst/lib/python3.11/site-packages"
48 2023-12-12 12:54:01,262 Trac[loader] DEBUG: Loading plugin "trac.ticket.web_ui" from "/var/www/tracinst/lib/python3.11/site-packages"
49 2023-12-12 12:54:01,265 Trac[loader] DEBUG: Loading plugin "trac.timeline" from "/var/www/tracinst/lib/python3.11/site-packages"
50 2023-12-12 12:54:01,266 Trac[loader] DEBUG: Loading plugin "trac.versioncontrol.admin" from "/var/www/tracinst/lib/python3.11/site-packages"
51 2023-12-12 12:54:01,266 Trac[loader] DEBUG: Loading plugin "trac.versioncontrol.svn_authz" from "/var/www/tracinst/lib/python3.11/site-packages"
52 2023-12-12 12:54:01,267 Trac[loader] DEBUG: Loading plugin "trac.versioncontrol.web_ui" from "/var/www/tracinst/lib/python3.11/site-packages"
53 2023-12-12 12:54:01,272 Trac[loader] DEBUG: Loading plugin "trac.web.auth" from "/var/www/tracinst/lib/python3.11/site-packages"
54 2023-12-12 12:54:01,272 Trac[loader] DEBUG: Loading plugin "trac.web.main" from "/var/www/tracinst/lib/python3.11/site-packages"
55 2023-12-12 12:54:01,273 Trac[loader] DEBUG: Loading plugin "trac.web.session" from "/var/www/tracinst/lib/python3.11/site-packages"
56 2023-12-12 12:54:01,273 Trac[loader] DEBUG: Loading plugin "trac.wiki.admin" from "/var/www/tracinst/lib/python3.11/site-packages"
57 2023-12-12 12:54:01,274 Trac[loader] DEBUG: Loading plugin "trac.wiki.interwiki" from "/var/www/tracinst/lib/python3.11/site-packages"
58 2023-12-12 12:54:01,274 Trac[loader] DEBUG: Loading plugin "trac.wiki.macros" from "/var/www/tracinst/lib/python3.11/site-packages"
59 2023-12-12 12:54:01,275 Trac[loader] DEBUG: Loading plugin "trac.wiki.web_api" from "/var/www/tracinst/lib/python3.11/site-packages"
60 2023-12-12 12:54:01,275 Trac[loader] DEBUG: Loading plugin "trac.wiki.web_ui" from "/var/www/tracinst/lib/python3.11/site-packages"
61 2023-12-12 12:54:01,276 Trac[loader] DEBUG: Loading plugin "tracopt.perm.authz_policy" from "/var/www/tracinst/lib/python3.11/site-packages"
62 2023-12-12 12:54:01,277 Trac[loader] DEBUG: Loading plugin "tracopt.perm.config_perm_provider" from "/var/www/tracinst/lib/python3.11/site-packages"
63 2023-12-12 12:54:01,278 Trac[loader] DEBUG: Loading plugin "tracopt.ticket.clone" from "/var/www/tracinst/lib/python3.11/site-packages"
64 2023-12-12 12:54:01,279 Trac[loader] DEBUG: Loading plugin "tracopt.ticket.commit_updater" from "/var/www/tracinst/lib/python3.11/site-packages"
65 2023-12-12 12:54:01,280 Trac[loader] DEBUG: Loading plugin "tracopt.ticket.deleter" from "/var/www/tracinst/lib/python3.11/site-packages"
66 2023-12-12 12:54:01,280 Trac[loader] DEBUG: Loading plugin "tracopt.versioncontrol.git.git_fs" from "/var/www/tracinst/lib/python3.11/site-packages"
67 2023-12-12 12:54:01,284 Trac[loader] DEBUG: Loading plugin "tracopt.versioncontrol.svn.svn_fs" from "/var/www/tracinst/lib/python3.11/site-packages"
68 2023-12-12 12:54:01,286 Trac[loader] DEBUG: Loading plugin "tracopt.versioncontrol.svn.svn_prop" from "/var/www/tracinst/lib/python3.11/site-packages"
69 2023-12-12 12:54:01,287 Trac[default_workflow] DEBUG: Workflow actions at initialization: defaultdict(<class 'dict'>, {'accept': {'oldstates': ['new', 'assigned', 'accepted', 'reopened'], 'newstate'
69 : 'accepted', 'operations': ['set_owner_to_self'], 'permissions': ['TICKET_MODIFY'], 'label': 'accept', 'name': '', 'default': 0}, 'create': {'oldstates': [None], 'newstate': 'new', 'default': 1, 'l
69 abel': 'create', 'name': '', 'operations': [], 'permissions': []}, 'create_and_assign': {'oldstates': [None], 'newstate': 'assigned', 'label': 'assign', 'operations': ['may_set_owner'], 'permissions
69 ': ['TICKET_MODIFY'], 'name': '', 'default': 0}, 'leave': {'oldstates': ['*'], 'newstate': '*', 'default': 1, 'operations': ['leave_status'], 'label': 'leave', 'name': '', 'permissions': []}, 'reass
69 ign': {'oldstates': ['new', 'assigned', 'accepted', 'reopened'], 'newstate': 'assigned', 'operations': ['set_owner'], 'permissions': ['TICKET_MODIFY'], 'label': 'reassign', 'name': '', 'default': 0}
69 , 'reopen': {'oldstates': ['closed'], 'newstate': 'reopened', 'operations': ['del_resolution'], 'permissions': ['TICKET_CREATE'], 'label': 'reopen', 'name': '', 'default': 0}, 'resolve': {'oldstates
69 ': ['new', 'assigned', 'accepted', 'reopened'], 'newstate': 'closed', 'operations': ['set_resolution'], 'permissions': ['TICKET_MODIFY'], 'label': 'resolve', 'name': '', 'default': 0}, '_reset': {'d
69 efault': 0, 'label': 'Reset', 'newstate': 'new', 'oldstates': [], 'operations': ['reset_workflow'], 'permissions': ['TICKET_ADMIN']}})
70
71 2023-12-12 12:54:01,313 Trac[main] DEBUG: Dispatching <RequestWithSession "GET '/login'">
72 2023-12-12 12:54:01,314 Trac[main] DEBUG: Chosen handler is <Component acct_mgr.web_ui.LoginModule>
73 2023-12-12 12:54:01,314 Trac[session] DEBUG: Retrieving session for ID '0e5625aac33ddeb97171b983'
74 2023-12-12 12:54:01,318 Trac[main] DEBUG: Negotiated locale: None -> en_GB
75 2023-12-12 12:54:01,323 Trac[main] WARNING: [10.23.245.35] HTTPInternalServerError: 500 Configuration error (Cannot find implementation(s) of the <code>IPasswordStore</code> interface named <code>Di
75 rAuthStore</code>. Please check that the Component is enabled or update the option <code>[account-manager] password_store</code> in trac.ini.), <RequestWithSession "GET '/login'">, referrer None
76 2023-12-12 12:54:01,323 Trac[chrome] DEBUG: Prepare chrome data for request
77 2023-12-12 12:54:01,323 Trac[api] DEBUG: action controllers for ticket workflow: ['ConfigurableTicketWorkflow']
/tony
--
Tony Albers - SCSA, SCNA, EMCIE, EMCBA, RHCSA
Banedanmark, Digital Test Center
Carsten Niebuhrs Gade 43, 1577 Copenhagen V