Re: [Quickfix-developers] Logon passwords
Brought to you by:
orenmnero
From: Vincent P. <vpr...@ph...> - 2008-06-17 16:25:38
|
I'm going to move my password checking out of the fromAdmin method to the overloaded onMessage methods for each message to be authenticated, like this: This will move password checking down from the session level to the message level. void QFApplication::onMessage(const FIX44::NewOrderSingle& m, const SessionID & id) { Password pwd; m.getField(pwd); if(pwd.getString() != string(dbpwd)) throw FIX::RejectLogon(); } Then on the sender side, I have this: FIX44::NewOrderSingle o(...); o.setField(FIX::Password("x0x0x0"); FIX::Session::sendToTarget(o); This compiles, but when it runs, I get this stuff on the acceptor side: <20080617-16:20:57, FIX.4.4:MP->CLIENT, incoming> (8=FIX. 4.49=15035=D34=158249=CLIENT52=20080617-16:20:38.99156=MP1=314411=158138 =4740=144=4070.3099223758654=255=MBI60=20080617-16:20:3864=F1554=x0x0x01 0=243) <20080617-16:20:57, FIX.4.4:MP->CLIENT, event> (Message 1582 Rejected: Tag not defined for this message type:554) On Jun 17, 2008, at 10:18 AM, or...@qu... wrote: > > You can use the getField method which does not do a compile time > check. > Alternatively you can use the message cracker which will send the > messages to their own callback and does not use a dynamic_cast. > > --oren > >> -------- Original Message -------- >> Subject: Re: [Quickfix-developers] Logon passwords >> From: Vincent Predoehl <vpr...@ph...> >> Date: Mon, June 16, 2008 11:15 pm >> To: qui...@li... >> QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/ >> html/index.html >> QuickFIX Support: http://www.quickfixengine.org/ >> services.html<hr>On Jun 16, 2008, at 10:56 PM, Vincent Predoehl >> wrote: >>> QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/ >>> html/index.html >>> QuickFIX Support: http://www.quickfixengine.org/services.html >>> >>> On Jun 16, 2008, at 10:19 PM, Rodrick Brown wrote: >>> >>>> >>>> You dont. However you might want to look at tag 554 for dealing >>>> with passwords >>>> >>>> >>> >>> >>> Can I assume that field is encrypted or something? >>> >> I ran into a new problem, the Message object doesn't contain a get >> method. I read on this forum I should use the fromAdmin method to >> validate passwords. I'm not really interested in using dynamic_cast >> for each possible message I want to validate. So how do I get the >> password from a Message field? >> Here's my code snippet: >> void QFApplication::fromAdmin( const FIX::Message& m, const >> FIX::SessionID& id) throw( FIX::FieldNotFound, >> FIX::IncorrectDataFormat, FIX::IncorrectTagValue, FIX::RejectLogon ) >> { >> Password pwd; m.get(pwd); // compile error - no get method >> DBPassword pwd(id.getString()); // postgre DB integration >> cn.perform(pwd); // get password from DB >> if(pwd.getString() != pwd) throw FIX::RejectLogon; >> } >> -- >> VP<hr>--------------------------------------------------------------- >> ---------- >> Check out the new SourceForge.net Marketplace. >> It's the best place to buy or sell services for >> just about anything Open Source. >> http://sourceforge.net/services/buy/ >> index.php<hr>_______________________________________________ >> Quickfix-developers mailing list >> Qui...@li... >> https://lists.sourceforge.net/lists/listinfo/quickfix-developers > -- VP |