When a client attempts to connect to a host (like a relay server), this connection is authenticated with a basic authentication challenge. To setup a basic authentication, the application registers a listener with OData SDK. If the ODPHTTPAuthChallengeListenerDelegate is not registered, an HTTP response code 401 is returned when a challenge is received.
To register a listener for certificate verification, implement the protocol ODPHTTPAuthChallengeListenerDelegate
@protocol ODPHTTPAuthChallengeListenerDelegate <NSObject> @required -(void) onHTTPAuthChallenge:(NSString*)host forUser:(NSString*)userName withRealm:(NSString*)realm; @end
[ODPClientListeners setHTTPAuthChallengeListenerDelegate:self];
[ODPUserManager enableHTTPS:NO];
[userManager registerUser:@"usermanager" securityConfig:@"HttpAuth" password:@"password" error:&error isSyncFlag:true];
-(void) onHTTPAuthChallenge:(NSString*)host forUser:(NSString*)userName withRealm:(NSString*)realm
{
[ODPClientListeners httpAuthChallengeResult:YES forUser:@"Mobile" withPassword:@"Ntwatch@123"];
NSLog(@"%@--%@--%@", host, userName, realm);
@try
{
NSString *host = @"relaymp.sap-ag.de"; NSInteger port = 443; NSString *companyid = @"SSLOverIMOHTTPS"; NSError *error;
ODPUserManager* userManager = [ODPUserManager getInstance:@"com.sap.NewFlight"];
[userManager setConnectionProfileWithHost:host port:port farm:companyid error:nil];
[ODPClientListeners setHTTPAuthChallengeListenerDelegate:self];
[ODPUserManager enableHTTPS:YES];
[userManager registerUser:@"smpuser2" securityConfig:@"HttpAuth" password:@"s3puser" error:&error
isSyncFlag:true];
}
}