{{Quickfixn}} Detecting wrong password in Initiator

Pavel pavka1799 at gmail.com
Sat Jun 2 15:29:33 PDT 2018


Hello!

I would appreciate any feedback on this question (about handling wrong
logon credentials) - is the question acceptable for this mailing list?

Thank you!

Best regards,
Pavel



On 22 May 2018 at 23:10, Pavel <pavka1799 at gmail.com> wrote:

> Hello!
>
> Please advise, what is the proper handling of wrong credentials on logon
> in initiator?
>
> At the start of application Logon window is displayed to prompt for user
> name + password, and in case of logon failure corresponding message should
> be displayed, prompting for correct input again. How is this scenario
> supported by QuickFix/n?
>
> In case username/password is wrong, QuickFix/n Initiator will keep on
> logon attempts, and I could not find any other handler of this situation
> but in "IApplicationExt.FromEarlyIntercept". Apparently no other handler
> is called in such a case, all logic is kept internally within the
> QuickFix/n engine - it just continues logon failures with the wrong
> password every <ReconnectInterval> seconds...
>
> So, my questions are:
> 1. To handle invalid username/password - is it correct to catch "logout"
> (MsgType=5) messages in "FromEarlyIntercept"?
> (Also it implies having a flag that logon is in progress, to distinguish
> "wrong credentials logout" from other scenarios...)
>
> 2. How to stop Initiator from logons with the wrong credentials - is
> calling the session's "Logout" a proper solution?
>
> 3. The below code - does it look generally correct to handle invalid
> credentials in the client (initiator) app with a Logon window (assuming
> Connect() is called from the Logon window)?
>
> Thank you!
>
> Best regards,
> Pavel
>
> public void Connect(..)
> {
>     ...
>     _connecting = true;
>     _initiator.Start();
>     ....
> }
>
> ...
>
> public void FromEarlyIntercept(Message msg, SessionID sessionID)
> {
>     if (_connecting)
>     {
>         string msgType = msg.Header.GetField(Tags.MsgType);
>         switch (msgType)
>         {
>             case MsgType.LOGOUT: // Got logout when connecting - wrong
> credentials?
>                 Session.LookupSession(sessionID).Logout("Invalid
> credentials"); // Stop further logon attempts?
>                 <signal logon failure / wrong credentials to the Logon
> Window>
>                 break;
>             ...
>         }
>     }
>    ...
> }
>
> public void OnLogon(SessionID sessionID)
> {
>     ...
>     _connecting = false;
>     ...
> }
> ...
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20180603/5ce4ef2f/attachment.htm>


More information about the Quickfixn mailing list