= True logout mechanism for Basic/Digest Authentication = == Description == This patch allows to logout from Basic/Digest Auth without closing the browser. On one hand Apache [http://httpd.apache.org/docs/1.3/howto/auth.html#basicfaq claims that it is not possible]. On other hand, Nano Documet [http://nanodocumet.homedns.org/rest/ give a solution] that works with most recent browsers. This patch works for `tracd` standalone. There's no need of Apache or any other server. I am lazy tonight, so i give you only the file changes.[[BR]] This patch should work on all platform, although I've only tested version 0.9.6 on Windows XP. I have tested successfully ''Firefox 1.5'' and ''Internet Explorer 6'' == Usage == * first remove buggy AuthFormPlugin ;-) * file `Share\trac\htdocs\js\trac.js`, append at the end of file: {{{ function clearAuthenticationCache() { try{ var agt=navigator.userAgent.toLowerCase(); if (agt.indexOf("msie") != -1) { // IE clear HTTP Authentication document.execCommand("ClearAuthenticationCache"); } else { // Let's create an xmlhttp object var xmlhttp = createXMLObject(); // Let's get the force page to logout for mozilla xmlhttp.open("GET",".force_logout_offer_login_mozilla",true,"logout","logout"); // Let's send the request to the server xmlhttp.send(""); // Let's abort the request xmlhttp.abort(); } } catch(e) { // There was an error return; } } function createXMLObject() { try { if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } // code for IE else if (window.ActiveXObject) { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } } catch (e) { xmlhttp=false } return xmlhttp; } }}} * file `Lib\site-packages\trac\web\auth.py`, locate method `get_navigation_items`, and change: {{{ yield ('metanav', 'logout', Markup('Logout' % escape(self.env.href.logout()))) }}} to: {{{ yield ('metanav', 'logout', Markup('Logout' % escape(self.env.href.logout()))) }}} * Now that's ok to start `tracd` and test logout feature. == Recent Changes == [[ChangeLog(truehttplogoutpatch, 3)]] == Author/Contributors == '''Author:''' [wiki:flox] [[BR]] '''Contributors:'''