public void GetClientConnectionInfo() { var hubName = "TestHub"; var hubUrl = "http://localhost"; var accessKey = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; var connectionString = $"Endpoint={hubUrl};AccessKey={accessKey};Version=1.0;"; var userId = "User"; var idToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"; var expectedName = "John Doe"; var expectedIat = "1516239022"; var claimTypeList = new string[] { "name", "iat" }; var serviceManager = new ServiceManagerBuilder() .WithOptions(o => { o.ConnectionString = connectionString; }) .Build(); var serviceHubContextStore = new ServiceHubContextStore(serviceManager, null); var azureSignalRClient = new AzureSignalRClient(serviceHubContextStore, serviceManager); var connectionInfo = azureSignalRClient.GetClientConnectionInfo(hubName, userId, idToken, claimTypeList); Assert.Equal(connectionInfo.Url, $"{hubUrl}/client/?hub={hubName.ToLower()}"); var claims = new JwtSecurityTokenHandler().ReadJwtToken(connectionInfo.AccessToken).Claims; Assert.Equal(expectedName, GetClaimValue(claims, "name")); Assert.Equal(expectedIat, GetClaimValue(claims, $"{AzureSignalRClient.AzureSignalRUserPrefix}iat")); }
public void AzureSignalRClient_GetClientConnectionInfo_ReturnsValidInfo() { var azureSignalR = new AzureSignalRClient("Endpoint=https://foo.service.signalr.net;AccessKey=/abcdefghijklmnopqrstu/v/wxyz11111111111111=;", null); var info = azureSignalR.GetClientConnectionInfo("chat"); const string expectedUrl = "https://foo.service.signalr.net:5001/client/?hub=chat"; TestHelpers.EnsureValidAccessToken( audience: expectedUrl, signingKey: "/abcdefghijklmnopqrstu/v/wxyz11111111111111=", accessToken: info.AccessToken); Assert.Equal(expectedUrl, info.Url); }
public void AzureSignalRClient_GetClientConnectionInfoWithUserId_ReturnsValidInfoWithUserId() { var azureSignalR = new AzureSignalRClient("Endpoint=https://foo.service.signalr.net;AccessKey=/abcdefghijklmnopqrstu/v/wxyz11111111111111=;Version=1.0;", null); var claims = new [] { new Claim(ClaimTypes.NameIdentifier, "foo") }; var info = azureSignalR.GetClientConnectionInfo("chat", claims); const string expectedEndpoint = "https://foo.service.signalr.net/client/?hub=chat"; var claimsPrincipal = TestHelpers.EnsureValidAccessToken( audience: expectedEndpoint, signingKey: "/abcdefghijklmnopqrstu/v/wxyz11111111111111=", accessToken: info.AccessToken); Assert.Contains(claimsPrincipal.Claims, c => c.Type == ClaimTypes.NameIdentifier && c.Value == "foo"); Assert.Equal(expectedEndpoint, info.Url); }