Introduce new test module 'WebListener.psm1'. Now web HTTPS tests can use it to exclude using external sites. PowerShell/PowerShell#4609 * [Feature] Add Tests for Web Cmdlet Certificate Authentication PowerShell/PowerShell#4609 * [feature] Add new app to Publish-PSTestTools refactor tests also add ASP.NET to .spelling * [feature] spelling fix * [feature] revert badssl changes * [feature] Impliment suggestions * [feature] Spelling, var rename, port 8443 to 8083 rebase fix conflict * [feature] Rename to HttpsListener and Module-ize . * [feature] password protect ClientCert to fix macOS import issue * [feature] Rename to WebListener * Rename HttpsListener to WebListener * Switch Listener from Razor pages to MVC * Address PR feedback * Adjust tests * [feature] Address PR feedback * [feature] Replace missing smeicolons * [feature] Address PR Feedback * [feature] Cleanup and minor fix * Enum was not used * GetStatus() was not accessing the correct property chain * Added -Test param to make URL generation smoother in test code and to fix double / issues * [feature] More minor fixes * Https when it matters. * Expand property... not exclude.. * Remove superfluous and outdated ToString() override * [Feature] Move ClientCeret.pfx to WebListener Module * Move the cert * Adjust Get-WebListenerClientCertificate * Remove cert from csproj * ActionResult -> JsonResult (was mistakenly left as ActionResult during testing).. * [Feature] Move ServerCert.pfx to Module * Move cert * Upate csproj * Update module * Add/Update README.md's CI Retest.
56 lines
1.6 KiB
Markdown
56 lines
1.6 KiB
Markdown
# WebListener App
|
|
|
|
ASP.NET Core 2.0 app for testing HTTP and HTTPS Requests. The default page will return a list of available tests.
|
|
|
|
# Run with `dotnet`
|
|
|
|
```
|
|
dotnet restore
|
|
dotnet publish --output bin --configuration Release
|
|
cd bin
|
|
dotnet WebListener.dll ServerCert.pfx password 8083 8084
|
|
```
|
|
|
|
The test site can then be accessed via `http://localhost:8083/` or `https://localhost:8084/`.
|
|
|
|
The `WebListener.dll` takes 4 arguments:
|
|
|
|
* The path to the Server Certificate
|
|
* The Server Certificate Password
|
|
* The TCP Port to bind on for HTTP
|
|
* The TCP Port to bind on for HTTPS
|
|
|
|
# Run With WebListener Module
|
|
|
|
```powershell
|
|
Import-Module .\build.psm1
|
|
Publish-PSTestTools
|
|
$Listener = Start-WebListener -HttpPort 8083 -HttpsPort 8084
|
|
```
|
|
|
|
# Tests
|
|
|
|
## /Cert/
|
|
|
|
Returns a JSON object containing the details of the Client Certificate if one is provided in the request.
|
|
|
|
Response when certificate is provided in request:
|
|
```json
|
|
{
|
|
"Status": "OK",
|
|
"IssuerName": "E=randd@adatum.com, CN=adatum.com, OU=R&D, O=A. Datum Corporation, L=Redmond, S=Washington, C=US",
|
|
"SubjectName": "E=randd@adatum.com, CN=adatum.com, OU=R&D, O=A. Datum Corporation, L=Redmond, S=Washington, C=US",
|
|
"NotAfter": "2044-12-26T12:16:46-06:00",
|
|
"Issuer": "E=randd@adatum.com, CN=adatum.com, OU=R&D, O=A. Datum Corporation, L=Redmond, S=Washington, C=US",
|
|
"Subject": "E=randd@adatum.com, CN=adatum.com, OU=R&D, O=A. Datum Corporation, L=Redmond, S=Washington, C=US",
|
|
"NotBefore": "2017-08-10T13:16:46-05:00",
|
|
"Thumbprint": "2DECF1348FF21B780F45D316A039B5EB4C6312F7"
|
|
}
|
|
```
|
|
|
|
Response when certificate is not provided in request:
|
|
```json
|
|
{
|
|
"Status": "FAILED"
|
|
}
|
|
```
|