> On Jun 1, 2015, at 9:35 AM, Josh Santangelo <[email protected]> wrote:
> 
>> 
>> On May 31, 2015, at 11:06 PM, Cooke, Mark <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>>>     On May 26, 2015, at 12:09 PM, RjOllos <[email protected] 
>>> <mailto:[email protected]>> wrote:
>>> 
>>>     On Tuesday, May 26, 2015 at 2:26:31 AM UTC-4, Cooke, Mark wrote:
>>> 
>>>             > On May 22, 2015 3:02 PM, "Josh Santangelo"
>>> <[email protected] <http://stimulant.com/> <javascript:> > wrote:
>>>             > >
>>>             > >
>>>             > >> On May 21, 2015, at 8:53 PM, RjOllos <[email protected] 
>>> <http://gmail.com/>
>>> <javascript:> > wrote:
>>>             > >>
>>>             > >> On Thursday, May 21, 2015 at 2:23:50 PM UTC-7, Josh
>>> Santangelo wrote:
>>>             > >>>
>>>             > >>> I ran the 1.0.6 MSI, but it seemed to break LDAP
>>> authentication. When I
>>>             > browse to trac I see:
>>>             > >>>
>>>             > >>> Traceback (most recent call last):
>>>             > >>>   File "C:\Python27\lib\site-packages\trac\web\api.py",
>>> line 559, in
>>>             > send_error
>>>             > >>>     data, 'text/html')
>>>             > >>>   File "C:\Python27\lib\site-
>>> packages\trac\web\chrome.py", line 1063, in
>>>             > render_template
>>>             > >>>     template = self.load_template(filename,
>>> method=method)
>>>             > >>>   File "C:\Python27\lib\site-
>>> packages\trac\web\chrome.py", line 1017, in
>>>             > load_template
>>>             > >>>     self.get_all_templates_dirs(),
>>> auto_reload=self.auto_reload,
>>>             > >>>   File "C:\Python27\lib\site-
>>> packages\trac\web\chrome.py", line 725, in
>>>             > get_all_templates_dirs
>>>             > >>>     for provider in self.template_providers:
>>>             > >>>   File "C:\Python27\lib\site-packages\trac\core.py", line
>>> 78, in
>>>             > extensions
>>>             > >>>     components = [component.compmgr[cls] for cls in
>>> classes]
>>>             > >>>   File "C:\Python27\lib\site-packages\trac\core.py", line
>>> 204, in
>>>             > __getitem__
>>>             > >>>     component = cls(self)
>>>             > >>>   File "C:\Python27\lib\site-packages\trac\core.py", line
>>> 140, in
>>>             > __call__
>>>             > >>>     self.__init__()
>>>             > >>>   File "build\bdist.win32\egg\acct_mgr\web_ui.py", line
>>> 75, in __init__
>>>             > >>>     self._write_check(log=True)
>>>             > >>>   File "build\bdist.win32\egg\acct_mgr\web_ui.py", line
>>> 79, in
>>>             > _write_check
>>>             > >>>     writable =
>>> self.acctmgr.get_all_supporting_stores('set_password')
>>>             > >>>   File "build\bdist.win32\egg\acct_mgr\api.py", line 348,
>>> in
>>>             > get_all_supporting_stores
>>>             > >>>     for store in self.password_stores:
>>>             > >>>   File "C:\Python27\lib\site-packages\trac\config.py",
>>> line 777, in
>>>             > __get__
>>>             > >>>     option=tag.tt <http://tag.tt/ <http://tag.tt/>> 
>>> ("[%s] %s" %
>>> (self.section, self.name <http://self.name/ <http://self.name/>> ))))
>>>             > >>> ConfigurationError: Cannot find implementation(s) of the
>>>             > <tt>IPasswordStore</tt> interface named
>>> <tt>LdapAuthStore</tt>. Please check
>>>             > that the Component is enabled or update the option
>>> <tt>[account-manager]
>>>             > password_store</tt> in trac.ini.
>>>             > >>>
>>>             > >>> I backed up my Python directory before the install, and
>>> restoring it
>>>             > seems to have restored things back to working.
>>>             > >>>
>>>             > >>
>>>             > >> Trac 1.0.2 and later enforces that Components specified in
>>> the trac.ini
>>>             > configuration file must be loaded. Often users find that when
>>> upgrading they
>>>             > had errors in their configuration that passed silently prior
>>> to the upgrade.
>>>             > >>
>>>             > >> Your [account-manager] password_store setting includes
>>> LdapAuthStore, but
>>>             > the plugin is either not installed, not loading correctly due
>>> to an error, or
>>>             > not enabled. LdapAuthStore is provided by LdapAuthStorePlugin
>>> (1). Perhaps
>>>             > you aren't actually using that store? In that case you can
>>> just removed
>>>             > LdapAuthStore from password_store. But if you are using the
>>> plugin, and the
>>>             > plugin is installed and enabled, then we need to determine
>>> why it's not
>>>             > loading. See TracTroubleshooting (2). It would also be useful
>>> to confirm,
>>>             > before trying the upgrade again, if it is loading in Trac
>>> 1.0.2. You can do
>>>             > that by inspecting the debug level log, as described in
>>> TracTroubleshooting.
>>>             > >
>>>             > >
>>>             > > Thanks, it seems your suspicions about the plugin not
>>> loading are correct,
>>>             > according to the log, which I’ve pasted below. I’m confused
>>> though, since
>>>             > LDAP authentication does work, and has for some time. How’s
>>> that possible if
>>>             > the plugin isn’t loading? I confirmed that the .egg files in
>>> the log are
>>>             > indeed there.
>>>             > >
>>>             > > 2014-04-01 11:22:27,046 Trac[env] INFO: -------------------
>>> -------------
>>>             > environment startup [Trac 1.0.1] ----------------------------
>>> ----
>>>             > > 2014-04-01 11:22:27,079 Trac[loader] DEBUG: Adding plugin
>>>             > LdapAuthStorePlugin 0.3.0 from
>>> c:\trac\stimulant\plugins\ldapauthstoreplugin-
>>>             > 0.3.0-py2.7.egg
>>>             > > 2014-04-01 11:22:27,079 Trac[loader] DEBUG: Adding plugin
>>> LdapPlugin
>>>             > 0.7.0dev from c:\trac\stimulant\plugins\ldapplugin-0.7.0dev-
>>> py2.7.egg
>>>             > > 2014-04-01 11:22:27,174 Trac[loader] DEBUG: Loading
>>>             > ldapauthstore.ldap_store from
>>> c:\trac\stimulant\plugins\ldapauthstoreplugin-
>>>             > 0.3.0-py2.7.egg
>>>             > > 2014-04-01 11:22:27,181 Trac[loader] ERROR: Skipping
>>>             > "ldapauthstore.ldap_store = ldapauthstore.ldap_store":
>>>             > >
>>>             > > Traceback (most recent call last):
>>>             > >   File "C:\Python27\lib\site-packages\trac\loader.py", line
>>> 68, in
>>>             > _load_eggs
>>>             > >     entry.load(require=True)
>>>             > >   File "C:\Python27\lib\site-packages\setuptools-0.6c11-
>>>             > py2.7.egg\pkg_resources.py", line 1954, in load
>>>             > >     entry = __import__(self.module_name,
>>> globals(),globals(), ['__name__'])
>>>             > >   File "build\bdist.win32\egg\ldapauthstore\ldap_store.py",
>>> line 2, in
>>>             > <module>
>>>             > >   File "build\bdist.win32\egg\ldapplugin\__init__.py", line
>>> 2, in <module>
>>>             > >   File "build\bdist.win32\egg\ldapplugin\api.py", line 25,
>>> in <module>
>>>             > > ImportError: No module named ldap
>>>             > > 2014-04-01 11:22:27,181 Trac[loader] DEBUG: Loading
>>> ldapplugin.api from
>>>             > c:\trac\stimulant\plugins\ldapplugin-0.7.0dev-py2.7.egg
>>>             > > 2014-04-01 11:22:27,187 Trac[loader] ERROR: Skipping
>>> "ldapplugin.api =
>>>             > ldapplugin.api":
>>>             > >
>>>             > > Traceback (most recent call last):
>>>             > >   File "C:\Python27\lib\site-packages\trac\loader.py", line
>>> 68, in
>>>             > _load_eggs
>>>             > >     entry.load(require=True)
>>>             > >   File "C:\Python27\lib\site-packages\setuptools-0.6c11-
>>>             > py2.7.egg\pkg_resources.py", line 1954, in load
>>>             > >     entry = __import__(self.module_name,
>>> globals(),globals(), ['__name__'])
>>>             > >   File "build\bdist.win32\egg\ldapplugin\__init__.py", line
>>> 2, in <module>
>>>             > >   File "build\bdist.win32\egg\ldapplugin\api.py", line 25,
>>> in <module>
>>>             > > ImportError: No module named ldap
>>>             >
>>>             > -----Original Message-----
>>>             > From: [email protected] <http://googlegroups.com/> 
>>> <javascript:>  [mailto:trac-
>>> [email protected] <http://googlegroups.com/> <javascript:> ] On
>>>             > Behalf Of Ryan Ollos
>>>             >
>>>             > It looks like it's not finding the Python ldap package. You
>>> might be able to
>>>             > install that from pypi.
>>>             >
>>>             > https://pypi.python.org/pypi/python-ldap 
>>> <https://pypi.python.org/pypi/python-ldap>
>>> <https://pypi.python.org/pypi/python-ldap 
>>> <https://pypi.python.org/pypi/python-ldap>>
>>> 
>>>             Hmm, I think we would be better to understand how LDAP auth is
>>> working
>>>             before fixing something that it looks like is not needed.
>>> 
>>>             Are you using apache httpd?  I use Trac on Windoze and use
>>> apache to
>>>             authenticate against our AD forest, perhaps you do the same?
>>> In which
>>>             case you do not need the Trac ldap interface at all...
>>> 
>>>             ~ mark c
>>> 
>>> 
>>> 
>>>     Does the Apache configuration you use populate the session info such
>>> as name and email address from the LDAP data store?
>>> 
>>> -----Original Message-----
>>> From: [email protected] <mailto:[email protected]> 
>>> [mailto:[email protected] <mailto:[email protected]>] On
>>> Behalf Of Josh Santangelo
>>> Sent: 31 May 2015 22:45
>>> To: [email protected] <mailto:[email protected]>
>>> Subject: Re: [Trac] Updating Trac on Windows?
>>> 
>>> Yes, I’m using Apache on Windows. I believe the original configuration was
>>> based on the docs here:
>>> https://trac-hacks.org/wiki/LdapPlugin 
>>> <https://trac-hacks.org/wiki/LdapPlugin>
>>> 
>>> httpd.conf looks something like:
>>> 
>>> <Location />
>>>    Order deny,allow
>>>    Allow from all
>>>    AuthType Basic
>>>    AuthName "Stimulant Trac"
>>>    AuthBasicProvider "ldap"
>>>    AuthLDAPURL "ldap://…";
>>>    AuthLDAPBindDN [email protected]
>>>    AuthLDAPBindPassword “..."
>>>    authzldapauthoritative Off
>>>    require ldap-group CN=Stimulant Devops,CN=Users,DC=stimulant,DC=local
>>> </Location>
>> 
>> This is definitely providing _authentication_ against LDAP as well as 
>> _authorisation_ in that httpd will reject users not in the specified group.  
>> What this does is pass the user info through to Trac in the session info 
>> (based on the parameters specified in the LDAP URL which can include the 
>> user's email).
>> 
>> If you only need to _authorise_ users based on LDAP group membership you are 
>> done.  Do all members of "Stimulant Devops" (via the built-in 
>> "authenticated" group) have the same rights or do you need finer grained 
>> permissions?
>> 
>>> trac.ini looks something like:
>>> 
>>> [ldap]
>>> allusers_group = Stimulant Devops
>>> basedn = dc=stimulant,dc=local
>>> bind_passwd = ...
>>> bind_user = cn=trac,dc=stimulant,dc=local
>>> enable = true
>>> group_rdn = ou=groups
>>> host = ...
>>> store_bind = true
>>> user_rdn = ou=people
>> 
>> Trac is repeating work done (probably more efficiently) by httpd.
>> 
>> As I only have a small number of users per repository I manage those special 
>> cases through the usual Trac Admin interface (no plugins required) using 
>> their network login names, forced to lower case.  Personally I would remove 
>> this plugin and the section from trac.ini.
> 
> I removed the plugin from trac.ini and authorization still seemed to work.
> 
> I redid the upgrade to 1.0.6 by switching my c:\python27 to the state it was 
> in after running the MSI. After restarting the server I saw the same error as 
> before rendered into the browser (Cannot find implementation(s) of the 
> <tt>IPasswordStore</tt> interface named <tt>LdapAuthStore</tt>).
> 
> I commented out password_store = LdapAuthStore from trac.ini.
> 
> Trac pages now load, but at the top it says "Error with navigation 
> contributor AccountModule”
> 
> The footer also still says 1.0.1.
> 
> I re-ran the MSI installer, but it didn’t change anything.

The trac-admin command line output says it’s 1.0.6.post2, though.

trac/about shows:


Trac    1.0.1
Genshi  0.7 (without speedups)
mod_wsgi        3.5 (WSGIProcessGroup WSGIApplicationGroup 
Trac.stimulant.local|)
psycopg2        2.5.2
Python  2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)]
setuptools      0.6c11
jQuery  1.7.2
jQuery UI       1.8.21
jQuery Timepicker       1.0.1

-- 
You received this message because you are subscribed to the Google Groups "Trac 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/trac-users.
For more options, visit https://groups.google.com/d/optout.

Reply via email to