<div><div><span><div><div><div>
            <div><span>Hi,</span></div><div><span>I'm a Zope newbie and i can't figure out a solution on the pluggable authentication system.</span></div><div><span>I declared the local utilities for the PAU with a script mostly based as the one in the BB FAQ's at <a href="http://bluebream.zope.org/doc/1.0/faq.html#how-do-i-setup-authentication-using-a-pau">http://bluebream.zope.org/doc/1.0/faq.html#how-do-i-setup-authentication-using-a-pau</a>, so to test it out i declared a simple view with zope.ManageContent permission required.</span></div><div><span><br></span></div><div><span><div>class TestFolderView(BrowserPage):</div><div><span style="white-space:pre">        </span>def __call__(self):</div><div><span style="white-space:pre">                </span>self.template = ViewPageTemplateFile('testfolderview.pt')</div></span></div><div><span><br></span></div><div>then in the configure.zcml</div><div><span><br></span></div><div><span><div>&nbsp;&nbsp;&lt;browser:page</div><div>&nbsp;&nbsp; &nbsp; for="zope.app.folder.interfaces.IFolder"</div><div>&nbsp;&nbsp; &nbsp; name="test.html"</div><div>&nbsp;&nbsp; &nbsp; permission="zope.ManageContent"</div><div>&nbsp;&nbsp; &nbsp; class=".testfolderview.TestFolderView"</div><div>&nbsp;&nbsp; &nbsp; /&gt;</div></span></div><div><span><br></span></div><div>Then i declare in the zope shell the necessary folder in the ZODB and launch the setup script:</div><div><br></div><div>&gt;&gt;&gt; import transaction</div><div>&gt;&gt;&gt;&nbsp;from zope.app.folder import Folder</div><div>&gt;&gt;&gt;&nbsp;from tw.main.setup import setup_site_manager</div><div>&gt;&gt;&gt;&nbsp;root['testsite'] = Folder()</div><div><span>&gt;&gt;&gt;&nbsp;</span>setup_site_manager(root['testsite'])</div><div>&gt;&gt;&gt; transaction.commit()</div><div><br></div><div><span>I expected here in paster serve mode to be redirected on the given login view, but instead zope prompts out the usual Unauthorized debug error.</span></div><div><span><br></span></div><div><span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">URL:</span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><a href="http://localhost:8080/mainsite/test.html">http://localhost:8080/testsite/test.html</a></span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><br></span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">Module</span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><span title="/Library/Python/2.6/site-packages/paste/evalexception/middleware.py">paste.evalexception.middleware</span></span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">:</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><b>306</b></span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">in</span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><code>respond</code></span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><a href="http://localhost:8080/mainsite/test.html#" tbid="4369243744" style="color: rgb(0, 153, 0); text-decoration: none; ">&nbsp; &nbsp;&nbsp;<img src="http://localhost:8080/_debug/media/plus.jpg" border="0" width="9" height="9">&nbsp;&nbsp; &nbsp;</a></span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><br></span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><code source-type="short" style="color: rgb(0, 0, 102); "><a href="http://localhost:8080/mainsite/test.html#" style="color: rgb(0, 153, 0); text-decoration: none; ">&gt;&gt;&nbsp;&nbsp;</a><font color="#333333">app_iter</font>&nbsp;<b>=</b>&nbsp;<font color="#333333">self</font><b>.</b><font color="#333333">application</font><b>(</b><font color="#333333">environ</font><b>,</b>&nbsp;<font color="#333333">detect_start_response</font><b>)</b></code></span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><br></span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">Module</span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><span title="/Library/Python/2.6/site-packages/paste/translogger.py">paste.translogger</span></span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">:</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><b>68</b></span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">in</span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><code>__call__</code></span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><a href="http://localhost:8080/mainsite/test.html#" tbid="4369241656" style="color: rgb(0, 153, 0); text-decoration: none; ">&nbsp; &nbsp;&nbsp;<img src="http://localhost:8080/_debug/media/plus.jpg" border="0" width="9" height="9">&nbsp;&nbsp; &nbsp;</a></span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><br></span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><code source-type="short" style="color: rgb(0, 0, 102); "><a href="http://localhost:8080/mainsite/test.html#" style="color: rgb(0, 153, 0); text-decoration: none; ">&gt;&gt;&nbsp;&nbsp;</a><font color="#0000AF"><b>return</b></font>&nbsp;<font color="#333333">self</font><b>.</b><font color="#333333">application</font><b>(</b><font color="#333333">environ</font><b>,</b>&nbsp;<font color="#333333">replacement_start_response</font><b>)</b></code></span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><br></span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">Module</span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><span title="/Users/zerrossetto/Sites/zope/tomorrowriters/eggs/zope.app.wsgi-3.9.3-py2.6.egg/zope/app/wsgi/__init__.py">zope.app.wsgi</span></span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">:</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><b>59</b></span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">in</span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><code>__call__</code></span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><a href="http://localhost:8080/mainsite/test.html#" tbid="4369243816" style="color: rgb(0, 153, 0); text-decoration: none; ">&nbsp; &nbsp;&nbsp;<img src="http://localhost:8080/_debug/media/plus.jpg" border="0" width="9" height="9">&nbsp;&nbsp; &nbsp;</a></span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><br></span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><code source-type="short" style="color: rgb(0, 0, 102); "><a href="http://localhost:8080/mainsite/test.html#" style="color: rgb(0, 153, 0); text-decoration: none; ">&gt;&gt;&nbsp;&nbsp;</a><font color="#333333">request</font>&nbsp;<b>=</b>&nbsp;<font color="#333333">publish</font><b>(</b><font color="#333333">request</font><b>,</b>&nbsp;<font color="#333333">handle_errors</font><b>=</b><font color="#333333">handle_errors</font><b>)</b></code></span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><br></span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">Module</span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><span title="/Users/zerrossetto/Sites/zope/tomorrowriters/eggs/zope.publisher-3.12.4-py2.6.egg/zope/publisher/publish.py">zope.publisher.publish</span></span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">:</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><b>129</b></span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">in</span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><code>publish</code></span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><a href="http://localhost:8080/mainsite/test.html#" tbid="4369241440" style="color: rgb(0, 153, 0); text-decoration: none; ">&nbsp; &nbsp;&nbsp;<img src="http://localhost:8080/_debug/media/plus.jpg" border="0" width="9" height="9">&nbsp;&nbsp; &nbsp;</a></span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><br></span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><code source-type="short" style="color: rgb(0, 0, 102); "><a href="http://localhost:8080/mainsite/test.html#" style="color: rgb(0, 153, 0); text-decoration: none; ">&gt;&gt;&nbsp;&nbsp;</a><font color="#333333">obj</font>&nbsp;<b>=</b>&nbsp;<font color="#333333">request</font><b>.</b><font color="#333333">traverse</font><b>(</b><font color="#333333">obj</font><b>)</b></code></span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><br></span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">Module</span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><span title="/Users/zerrossetto/Sites/zope/tomorrowriters/eggs/zope.publisher-3.12.4-py2.6.egg/zope/publisher/browser.py">zope.publisher.browser</span></span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">:</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><b>554</b></span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">in</span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><code>traverse</code></span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><a href="http://localhost:8080/mainsite/test.html#" tbid="4369241584" style="color: rgb(0, 153, 0); text-decoration: none; ">&nbsp; &nbsp;&nbsp;<img src="http://localhost:8080/_debug/media/plus.jpg" border="0" width="9" height="9">&nbsp;&nbsp; &nbsp;</a></span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><br></span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><code source-type="short" style="color: rgb(0, 0, 102); "><a href="http://localhost:8080/mainsite/test.html#" style="color: rgb(0, 153, 0); text-decoration: none; ">&gt;&gt;&nbsp;&nbsp;</a><font color="#333333">ob</font><b>,</b>&nbsp;<font color="#333333">add_steps</font>&nbsp;<b>=</b>&nbsp;<font color="#333333">publication</font><b>.</b><font color="#333333">getDefaultTraversal</font><b>(</b><font color="#333333">self</font><b>,</b>&nbsp;<font color="#333333">ob</font><b>)</b></code></span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><br></span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">Module</span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><span title="/Users/zerrossetto/Sites/zope/tomorrowriters/eggs/zope.app.publication-3.12.0-py2.6.egg/zope/app/publication/browser.py">zope.app.publication.browser</span></span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">:</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><b>36</b></span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">in</span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><code>getDefaultTraversal</code></span><span style="font-family: Helvetica, sans-serif; font-size: medium; ">&nbsp;</span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><a href="http://localhost:8080/mainsite/test.html#" tbid="4369240576" style="color: rgb(0, 153, 0); text-decoration: none; ">&nbsp; &nbsp;&nbsp;<img src="http://localhost:8080/_debug/media/plus.jpg" border="0" width="9" height="9">&nbsp;&nbsp; &nbsp;</a></span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><br></span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><code source-type="short" style="color: rgb(0, 0, 102); "><a href="http://localhost:8080/mainsite/test.html#" style="color: rgb(0, 153, 0); text-decoration: none; ">&gt;&gt;&nbsp;&nbsp;</a><font color="#0000AF"><b>return</b></font>&nbsp;<font color="#333333">ob</font><b>.</b><font color="#333333">browserDefault</font><b>(</b><font color="#333333">request</font><b>)</b></code></span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><br></span><span style="font-family: Helvetica, sans-serif; font-size: medium; "><b>Unauthorized: (&lt;zope.browserpage.metaconfigure.TestFolderView object at 0x104f9f410&gt;, 'browserDefault', 'zope.ManageContent')</b></span></span></div><div><br></div><div><span>I have noticed searching around a bit that a solution of this is catching the IUnauthorized interface with zcml as it follows,</span></div><div><span><br></span></div><div><span style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; ">&nbsp;&lt;browser:defaultView&nbsp;</span></div><span style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><span>&nbsp; &nbsp; &nbsp; for="zope.security.interfaces.IUnauthorized"&nbsp;</span><br><span>&nbsp; &nbsp; &nbsp; name="login"&nbsp;</span><br></span><div><span><span style="border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; ">&nbsp;&nbsp; &nbsp; &nbsp;/&gt;&nbsp;</span>&nbsp;</span></div><div><span><br></span></div><div><span>but now I'm wondering if it's just the right approach for the problem, I mean, isn't duty of the PAU to issue a BrowserChallenge?</span></div><div><span><br></span></div><div><span>Thank you in advance.</span></div><div>
                <span><br>--&nbsp;<br>Zerrossetto<br>Sent with <a href="http://www.sparrowmailapp.com">Sparrow</a></span></div>
        </div></div></div></span></div></div>