fvancrae
(Frederic Vancraeyveldt)
October 6, 2025, 12:33pm
1
I am adding MFA to our RemObjects client applications.
For this I wish use OneLogin (openid).
I would want the process to work by setting my redirect URL to the RemObjects https server.
Is this possible?
Is the RO server capable of processing an openid GET or POST (I haven’t analyzed it yet).
The actual handling and openid calls would be something I implement.
I only want to capture a GET/POST of something that is not a RO client.
EvgenyK
(Evgeny Karpov)
October 6, 2025, 12:51pm
2
Hi,
you can use HttpSysServerChannel.HttpRequest event or do it similar to HttpApiDispatcher class.
HttpApiDispatcher can handle GET/POST/etc requests
fvancrae
(Frederic Vancraeyveldt)
October 9, 2025, 1:09pm
3
Hi, do I understand correctly that the HttpSysServerChannel.HttpRequest method requires an extra TCP port?
And that the HttpApiDispatcherClass works on the same TCP port?
I would like to use the same TCP port,
Can I do this via the URL
I already have code where a BinMessage can be chosen for a certain dispatchername (relative URL path?)
Is this the way to go?
private void SetupBinMessageForChannel(string dispatchername, MessageEnvelope env)
{
var binMessage = new EnvelopedBinMessage(dispatchername);
binMessage.EnforceMaxMessageSize = false;
if (env != null)
binMessage.Envelopes.Add(env);
/*binMessageWithEnvelope.Envelopes[0].Enabled = true;
binMessageWithEnvelope.Envelopes[1].Enabled = false;*/
serverChannel_.Dispatchers.Add(new RemObjects.SDK.Server.MessageDispatcher(dispatchername, binMessage));
serverROHTTPs_.NetworkServer.RegisterServerMessage(binMessage);
}
fvancrae
(Frederic Vancraeyveldt)
October 9, 2025, 1:17pm
4
FYI: A solution with an extra TCP port is also OK but there I wonder how to set up a RO server that listens to multiple ports.
I have
private RemObjects.SDK.Server.ApplicationServer serverROHTTPs_;
private RemObjects.SDK.Server.IpHttpServerChannel serverChannel_;
…
serverROHTTPs_.NetworkServer.ServerChannel = serverChannel_;
serverROHTTPs_.NetworkServer.Port = listenport;
serverROHTTPs_.Run(args);
I am wondering how to support 2 channels
EvgenyK
(Evgeny Karpov)
October 9, 2025, 1:28pm
5
Hi,
no, it isn’t require
HttpRequest is a event of HttpSysServerChannel/IpHttpServerChannel (or in similar super http channel) and it is raised for unhandled requests, like
server.NetworkServer.ServerChannel := new IpHttpServerChannel();
//server.NetworkServer.ServerChannel.SecurityOptions.MaxRequestSize := 10 * 1024 * 1024;
//server.NetworkServer.Port := 8099;
IpHttpServerChannel(server.NetworkServer.ServerChannel).HttpRequest +=
(sender,e) ->
begin
writeln($'request: {e.Request.Path} was processed');
e.Handled := true;
e.Response.HttpCode := System.Net.HttpStatusCode.OK;
end;
server.Run(args);
fvancrae
(Frederic Vancraeyveldt)
October 15, 2025, 12:57pm
6
Th HttpRequest event method works perfectly.
For one RO server (with client certificate checking) it had a slight -and perfectly to be expected-drawback of the browser asking which client certificate to pass.
Using a RO server that does not ask a client certificate does not have this.
Thanks for the help.