Opened 16 years ago
Closed 16 years ago
#3107 closed defect (fixed)
_get_trust_root() not quite right.
Reported by: | The Doctor What | Owned by: | Dalius |
---|---|---|---|
Priority: | normal | Component: | AuthOpenIdPlugin |
Severity: | normal | Keywords: | |
Cc: | Trac Release: | 0.11 |
Description
The _get_trust_root() method doesn't always work right. Attached is the simple fix for just the case I ran into. (I set TRAC_BASE_URL and it caused href() and abs_href() to return non-overlapping parts of the URL).
The correct solution is probably to normalize the URL somehow. I think the openid library has something for that.
Attachments (1)
Change History (4)
Changed 16 years ago by
Attachment: | get_trust_root.patch added |
---|
comment:1 Changed 16 years ago by
What is your base_url? I have trac site running with base_url "http://trac.sandbox.lt/skaityta/". I am asking because I want to understand what exactly problem you have.
comment:2 Changed 16 years ago by
No worries!
Due to spam blocking, I've had to munge all links. I'm adding a single space character to break it up.
I'm using supervise to manage tracd, here's my run script: !/bin/sh exec 2>&1 echo 'tracd starting.' exec sudo -H -u trac \
env \
TRAC_URI_ROOT=/ \ TRAC_BASE_URL=http :trac.gerf.org/ \ PYTHON_EGG_CACHE=/trac/.egg_cache/ \ TRAC_ENV_INDEX_TEMPLATE=/trac/templates/top_index.html \ tracd \ --port 9123 \ --hostname trac.gerf.org \ --env-parent-dir=/trac/projects \ --base-path / \ --protocol http
Without the patch I included I get the following values for http://trac.gerf.org/itsalltext req.href() == '/itsalltext' req.abs_href() == 'http :trac.gerf.org' returned base_url == 'http :tr'
The code in trac's env.py don't make it clear to me what abs_href vs. href is supposed to do. On the plus side, it looks like you can actually use req.base_url directly.
Ciao!
comment:3 Changed 16 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
That's what actually you should expect from those functions (or something similar): req.href(): /trac_test req.abs_href(): http://127.0.0.1:8000/trac_test
Result in your case looks very unclear. I have created fix for plugin if it is affect by such situation. Get newest plugin version from trac or http://hg.sandbox.lt/authopenid-plugin/archive/v0.1.2.tar.gz
base_url is possible solution as well but I'm not sure about that yet because base_url might point to project. That will conflict with absolute_trust_root option of this plugin.
P.S. Thank you for "It's all text". I'm using very small number of FireFox add-ons and this one is I like very much.
Simple patch