I do not think somebody should be forced to manage his passwords and usernames 
in a way that somebody else considers to be "more secure". If the developers 
put effort in preventing this behaviour, they could have made it configurable. 
I looked at the source and for me it looks a little like "Oh, we found a nice 
login solution. - But password managers do not work any more. - Well it´s not a 
bug, it´s a feature." :)

I found a plugable solution for me without touching the original source 
(important for me because of the debian package manager). I did four 
improvements on my needs. If somebody would like to use one or more of them on 
his SOGo instance - feel free to do so.

In /etc/sogo/sogo.conf I added my own javascript file:
SOGoUIAdditionalJSFiles = ( "gojowsky-login-features.js" );

and put this content to 
/usr/lib/GNUstep/SOGo/WebServerResources/gojowsky-login-features.js

=============================================================================================
document.observe( 'dom:loaded', function() {
    if ( $('connectForm') ) {
        // Preselect German Language
        $('language').setValue('German');

        // We want to hook into login process, so delete SOGos click and 
keypress observers
        $('submit').stopObserving('click');
        $('userName').stopObserving('keydown');
        $('password').stopObserving('keydown');

        // Instead we start our own login functions
        $('submit').observe( 'click', onOurLoginClick );
        $('userName').observe( 'keydown', onOurFieldKeyDown );
        $('password').observe( 'keydown', onOurFieldKeyDown );

    }
});

function onOurLoginClick(event) {
    if ( $('userName').value.length > 0 ) {
        // Auto Domain Login: If there is no @ in username, we append current 
second level domain
        var regexIsDomainPresent = /@/;
        if ( $('userName').value && ! regexIsDomainPresent.test( 
$('userName').value ) ) {
            $('userName').value += '@' + document.domain.match( 
/([^.]+)\.([^.]+)$/igm )[0];
        }

        if ( $('password').value.length > 0 ) {
            // use Firefox password manager
            triggerPasswordManager();

            // now SOGo can do what´s necessary to do the real login
            onLoginClick();
        }
        else {
            $('password').focus();
        }
    }
}

function onOurFieldKeyDown(event) {
    if ( event.keyCode == Event.KEY_RETURN ) {
        // We check existance of username and password in this function, so no 
need to do it twice
        onOurLoginClick(event);
    }
    else {
        // Let SOGo do the rest (delete error messages and so on)
        onFieldKeyDown(event);
    }
}

function triggerPasswordManager() {
    Event.observe( 'connectForm', 'submit', function(event) {
        Event.stop(event);
        if ( $('connectFormSubmit') ) {
            $('connectFormSubmit').remove();
        }
    });
    $('connectForm').insert({
        bottom: new Element('input', {
            id: 'connectFormSubmit',
            type: 'submit'
        }).setStyle({
            display: 'none'
        })
    });
    $('connectFormSubmit').click();
}
=============================================================================================



 
On 07.11.2014 13:06, Cristian Mack wrote:

>Yes that is true.
>And AFAIK this is intended behaviour, because of the security
>implications especially in hostile environments like internet cafes.
>
>Am 2014-11-07 um 11:11 schrieb Martin Gojowsky:
>> I do not agree that this is the same problem. Perhaps related somehow in the 
>> way that both deals with password managers.
>> But this bug says that a separate password manager (that recognized the 
>> password or got it manually) can not automatically open the webmail because 
>> the post address is wrong (pointing to an Ajax auth endpoint). I understand 
>> and know what the problem is. But it has nothing to do with my problem.
>> I am talking about the auto completion feature of Firefox. If it already has 
>> the password, it fills the form absolutely correct. But it does not realize 
>> that the form is submitted so there is no prompt "Safe ths password for 
>> mail.example.org?"
>>
>>
>> On 06.11.2014 18:51, Jens Erat wrote:
>>
>>> Related: http://www.sogo.nu/bugs/view.php?id=2762
>>
>>> On 06.11.2014 18:34, Martin Gojowsky wrote:
>>>>
>>>> I am a friend of Firefox password manager (on secure computers) and I miss 
>>>> it very much with SOGo webmail.
>>>> I did some research and Firefox developers already took much effort to 
>>>> make the recognization better. E.g. all POST requests with password field 
>>>> is covered.
>>>> But function onLoginClick in SOGoRootPage.js builds an URI and does 
>>>> authentication by Ajax GET.
>>>> I can do $('connectForm').submit(); in Firebug console to save the 
>>>> password for me. Or build another form on the same domain 
>>>> (sogo.example.org/passwordform). But these are workarounds just for me, no 
>>>> solution for everyone.
>>>>
>>>> Is it possible to trigger Firefox in some other way?
>>>>
 
-- 
[email protected]
https://inverse.ca/sogo/lists

Reply via email to