UaExpert uses the endpoint URL in a GetEndpoints call

Questions regarding the use of the UaExpert.

Moderator: uaexpert

Post Reply
Sascha
Jr. Member
Jr. Member
Posts: 2
Joined: 12 Apr 2017, 14:12

UaExpert uses the endpoint URL in a GetEndpoints call

Post by Sascha »

Hi,

I have a custom UA server that can be configured to use a discovery URL containing a path, e.g.:

discovery url:

Code: Select all

opc.tcp://localhost:4080/discovery
Now, using that url with GetEndpoints returns one endpoint, e.g.:

endpoint url:

Code: Select all

opc.tcp://localhost:4080/anon
When I add that endpoint through the "Add Server" Discovery tab and try to connect, UaExpert first calls GetEndpoints on the server again, but using the endpoint url instead of the original discovery url.

The server does not return endpoint descriptions for urls which do not match its discovery url. So during connect, UaExpert gets an empty endpoint list and pops up a window saying that the server does not support the configured security policy (which is not true). I can ignore that message and still connect successfully, but using the endpoint url against the GetEndpoints service just looks not right to me.

Am I missing something?

Thanks,
Sascha

User avatar
Support Team
Hero Member
Hero Member
Posts: 3069
Joined: 18 Mar 2011, 15:09

Re: UaExpert uses the endpoint URL in a GetEndpoints call

Post by Support Team »

Hello Sascha,

as stated in the UA specification, part 4, 5.4.4.1:
A Server may have multiple HostNames. For this reason, the Client shall pass the URL it used to
connect to the Endpoint to this Service. The implementation of this Service shall use this
information to return responses that are accessible to the Client via the provided URL.
This only says that the server might filter based on the hostname portion of the URL. But when calling GetEndpoints on an EndpointURL, the client can expect that the server (at least) returns the endpoint belonging to the EndpointURL. The specification does not state that the server should only return endpoints on DiscoveryURLs.

UaExpert calls GetEndpoints on the given URL in order to retrieve server certificate and UserTokens. This is necessary, as the URL used for connecting can be entered manually by the user, in which case this information is not available.
Best regards
Unified Automation Support Team

Sascha
Jr. Member
Jr. Member
Posts: 2
Joined: 12 Apr 2017, 14:12

Re: UaExpert uses the endpoint URL in a GetEndpoints call

Post by Sascha »

Hi Support Team,

thanks for the reply, your interpretation of that paragraph makes sense to me.

That particular paragraph as well as a few others related to (session) endpoint and discovery urls really got me confused intitially. There is some dicsussion in this thread and as I understood it, those paragraphs should have been removed or reformulated for v1.03 of the specs already.

Thanks again,
Sascha

Post Reply