React to rename of IHttpClientCertificateFeature rename.
This commit is contained in:
parent
b0d0e94aba
commit
4d015760f6
|
|
@ -37,7 +37,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
IHttpConnectionFeature,
|
IHttpConnectionFeature,
|
||||||
IHttpResponseFeature,
|
IHttpResponseFeature,
|
||||||
IHttpSendFileFeature,
|
IHttpSendFileFeature,
|
||||||
IHttpClientCertificateFeature,
|
ITlsConnectionFeature,
|
||||||
IHttpRequestLifetimeFeature,
|
IHttpRequestLifetimeFeature,
|
||||||
IHttpWebSocketFeature,
|
IHttpWebSocketFeature,
|
||||||
IHttpAuthenticationFeature,
|
IHttpAuthenticationFeature,
|
||||||
|
|
@ -60,7 +60,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
private int? _remotePort;
|
private int? _remotePort;
|
||||||
private int? _localPort;
|
private int? _localPort;
|
||||||
private bool? _isLocal;
|
private bool? _isLocal;
|
||||||
private X509Certificate _clientCert;
|
private X509Certificate2 _clientCert;
|
||||||
private ClaimsPrincipal _user;
|
private ClaimsPrincipal _user;
|
||||||
private IAuthenticationHandler _authHandler;
|
private IAuthenticationHandler _authHandler;
|
||||||
private Stream _responseStream;
|
private Stream _responseStream;
|
||||||
|
|
@ -93,15 +93,16 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
{
|
{
|
||||||
_features.Add(typeof(IHttpRequestFeature), this);
|
_features.Add(typeof(IHttpRequestFeature), this);
|
||||||
_features.Add(typeof(IHttpConnectionFeature), this);
|
_features.Add(typeof(IHttpConnectionFeature), this);
|
||||||
if (Request.IsSecureConnection)
|
|
||||||
{
|
|
||||||
// TODO: Should this feature be conditional? Should we add this for HTTP requests?
|
|
||||||
_features.Add(typeof(IHttpClientCertificateFeature), this);
|
|
||||||
}
|
|
||||||
_features.Add(typeof(IHttpResponseFeature), this);
|
_features.Add(typeof(IHttpResponseFeature), this);
|
||||||
_features.Add(typeof(IHttpSendFileFeature), this);
|
_features.Add(typeof(IHttpSendFileFeature), this);
|
||||||
_features.Add(typeof(IHttpRequestLifetimeFeature), this);
|
_features.Add(typeof(IHttpRequestLifetimeFeature), this);
|
||||||
_features.Add(typeof(IHttpAuthenticationFeature), this);
|
_features.Add(typeof(IHttpAuthenticationFeature), this);
|
||||||
|
_features.Add(typeof(IRequestIdentifierFeature), this);
|
||||||
|
|
||||||
|
if (Request.IsSecureConnection)
|
||||||
|
{
|
||||||
|
_features.Add(typeof(ITlsConnectionFeature), this);
|
||||||
|
}
|
||||||
|
|
||||||
// Win8+
|
// Win8+
|
||||||
if (WebSocketHelpers.AreWebSocketsSupported)
|
if (WebSocketHelpers.AreWebSocketsSupported)
|
||||||
|
|
@ -109,16 +110,6 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
_features.Add(typeof(IHttpUpgradeFeature), this);
|
_features.Add(typeof(IHttpUpgradeFeature), this);
|
||||||
_features.Add(typeof(IHttpWebSocketFeature), this);
|
_features.Add(typeof(IHttpWebSocketFeature), this);
|
||||||
}
|
}
|
||||||
|
|
||||||
_features.Add(typeof(IRequestIdentifierFeature), this);
|
|
||||||
|
|
||||||
// TODO:
|
|
||||||
/*
|
|
||||||
Server
|
|
||||||
_environment.Listener = _server;
|
|
||||||
Channel binding
|
|
||||||
_environment.ConnectionId = _request.ConnectionId;
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Stream IHttpRequestFeature.Body
|
Stream IHttpRequestFeature.Body
|
||||||
|
|
@ -302,7 +293,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
set { _remotePort = value; }
|
set { _remotePort = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
X509Certificate IHttpClientCertificateFeature.ClientCertificate
|
X509Certificate2 ITlsConnectionFeature.ClientCertificate
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
|
@ -315,7 +306,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
set { _clientCert = value; }
|
set { _clientCert = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
async Task<X509Certificate> IHttpClientCertificateFeature.GetClientCertificateAsync(CancellationToken cancellationToken)
|
async Task<X509Certificate2> ITlsConnectionFeature.GetClientCertificateAsync(CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
if (_clientCert == null)
|
if (_clientCert == null)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ namespace Microsoft.Net.Http.Server
|
||||||
private string _pathBase;
|
private string _pathBase;
|
||||||
private string _path;
|
private string _path;
|
||||||
|
|
||||||
private X509Certificate _clientCert;
|
private X509Certificate2 _clientCert;
|
||||||
|
|
||||||
private HeaderCollection _headers;
|
private HeaderCollection _headers;
|
||||||
private BoundaryType _contentBoundaryType;
|
private BoundaryType _contentBoundaryType;
|
||||||
|
|
@ -430,7 +430,7 @@ namespace Microsoft.Net.Http.Server
|
||||||
// Populates the client certificate. The result may be null if there is no client cert.
|
// Populates the client certificate. The result may be null if there is no client cert.
|
||||||
// TODO: Does it make sense for this to be invoked multiple times (e.g. renegotiate)? Client and server code appear to
|
// TODO: Does it make sense for this to be invoked multiple times (e.g. renegotiate)? Client and server code appear to
|
||||||
// enable this, but it's unclear what Http.Sys would do.
|
// enable this, but it's unclear what Http.Sys would do.
|
||||||
public async Task<X509Certificate> GetClientCertificateAsync(CancellationToken cancellationToken = default(CancellationToken))
|
public async Task<X509Certificate2> GetClientCertificateAsync(CancellationToken cancellationToken = default(CancellationToken))
|
||||||
{
|
{
|
||||||
if (SslStatus == SslStatus.Insecure)
|
if (SslStatus == SslStatus.Insecure)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -85,7 +85,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
using (Utilities.CreateHttpsServer(async env =>
|
using (Utilities.CreateHttpsServer(async env =>
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
var tls = httpContext.GetFeature<IHttpClientCertificateFeature>();
|
var tls = httpContext.GetFeature<ITlsConnectionFeature>();
|
||||||
Assert.NotNull(tls);
|
Assert.NotNull(tls);
|
||||||
var cert = await tls.GetClientCertificateAsync(CancellationToken.None);
|
var cert = await tls.GetClientCertificateAsync(CancellationToken.None);
|
||||||
Assert.Null(cert);
|
Assert.Null(cert);
|
||||||
|
|
@ -103,7 +103,7 @@ namespace Microsoft.AspNet.Server.WebListener
|
||||||
using (Utilities.CreateHttpsServer(async env =>
|
using (Utilities.CreateHttpsServer(async env =>
|
||||||
{
|
{
|
||||||
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
var httpContext = new DefaultHttpContext((IFeatureCollection)env);
|
||||||
var tls = httpContext.GetFeature<IHttpClientCertificateFeature>();
|
var tls = httpContext.GetFeature<ITlsConnectionFeature>();
|
||||||
Assert.NotNull(tls);
|
Assert.NotNull(tls);
|
||||||
var cert = await tls.GetClientCertificateAsync(CancellationToken.None);
|
var cert = await tls.GetClientCertificateAsync(CancellationToken.None);
|
||||||
Assert.NotNull(cert);
|
Assert.NotNull(cert);
|
||||||
|
|
|
||||||
|
|
@ -90,16 +90,16 @@ namespace Microsoft.Net.Http.Server
|
||||||
{
|
{
|
||||||
using (var server = Utilities.CreateHttpsServer())
|
using (var server = Utilities.CreateHttpsServer())
|
||||||
{
|
{
|
||||||
Task<string> responseTask = SendRequestAsync(Address);
|
X509Certificate2 clientCert = FindClientCert();
|
||||||
|
Assert.NotNull(clientCert);
|
||||||
|
Task<string> responseTask = SendRequestAsync(Address, clientCert);
|
||||||
|
|
||||||
var context = await server.GetContextAsync();
|
var context = await server.GetContextAsync();
|
||||||
var cert = await context.Request.GetClientCertificateAsync();
|
var cert = await context.Request.GetClientCertificateAsync();
|
||||||
Assert.NotNull(cert);
|
Assert.NotNull(cert);
|
||||||
context.Dispose();
|
context.Dispose();
|
||||||
|
|
||||||
X509Certificate2 clientCert = FindClientCert();
|
string response = await responseTask;
|
||||||
Assert.NotNull(clientCert);
|
|
||||||
string response = await SendRequestAsync(Address, clientCert);
|
|
||||||
Assert.Equal(string.Empty, response);
|
Assert.Equal(string.Empty, response);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue