Skip to content

Get external user

Retrieves external-user data via the remote SecurityApi; this library never uses the returned data in an authorization decision.

Field Value
Operation ID OP-08
Trigger Caller code requests external-user data (sourced from EXT oracle tables by the remote service).
Inputs userId.
Outputs ExternalUser, or a thrown SecurityClientException.
Primary components SecurityClient.GetExternalUser(userId)
Entry point src/SAIF.NetCore.AuthService/SAIF.NetCore.AuthService/SAIF.NetCore.AuthService/Clients/SecurityClient.cs

Steps

  1. GET /v1/ExternalData/User/{userId} through HandleSecurityServiceGetResponse<ExternalUser> (BR-AUTH-011)
  2. 1.1 Await the GET call.
  3. 1.2 On success, return result.GetResult<ExternalUser>().
  4. 1.3 Otherwise, if result.ErrorException is present, throw SecurityClientException(result.ErrorMessage, result.ErrorException) (error with inner exception).
  5. 1.4 Otherwise (no inner exception), throw SecurityClientException(result.ErrorMessage).

Origin: Steps 1.1–1.4 are implemented in Handle a Security API response (SAIF.NetCore.AuthService) and executed on behalf of this operation.

Process flow

The following diagram visualizes this operation's control flow.

flowchart TD
    Start([GetExternalUser called]) --> Get["GET /v1/ExternalData/User/userId"]
    Get --> Success{IsSuccessful?}
    Success -->|Yes| Return([Return ExternalUser])
    Success -->|No| Throw([Throw SecurityClientException])

Failure and edge-case behavior

  • A non-success remote response throws SecurityClientException.

Sources

  • src/SAIF.NetCore.AuthService/SAIF.NetCore.AuthService/SAIF.NetCore.AuthService/Clients/SecurityClient.cs