Skip to content

Commit a21a690

Browse files
authored
Support for ServiceTag, multi-ip and http-headers (#13358)
1 parent 425b5fe commit a21a690

25 files changed

+11699
-3728
lines changed

src/Accounts/Authentication/Properties/Resources.Designer.cs

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Websites/Websites.Test/ScenarioTests/AccessRestrictionTests.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,20 @@ public void TestAddWebAppAccessRestriction()
5959
WebsitesController.NewInstance.RunPsTest(_logger, "Test-AddWebAppAccessRestriction");
6060
}
6161

62+
[Fact]
63+
[Trait(Category.AcceptanceType, Category.CheckIn)]
64+
public void TestAddWebAppAccessRestrictionServiceTag()
65+
{
66+
WebsitesController.NewInstance.RunPsTest(_logger, "Test-AddWebAppAccessRestrictionServiceTag");
67+
}
68+
69+
[Fact]
70+
[Trait(Category.AcceptanceType, Category.CheckIn)]
71+
public void TestAddWebAppAccessRestrictionHttpHeaders()
72+
{
73+
WebsitesController.NewInstance.RunPsTest(_logger, "Test-AddWebAppAccessRestrictionHttpHeaders");
74+
}
75+
6276
// Currently no mock for Network exists in the Test Framework
6377
//[Fact]
6478
//[Trait(Category.AcceptanceType, Category.CheckIn)]
@@ -74,6 +88,13 @@ public void TestRemoveWebAppAccessRestriction()
7488
WebsitesController.NewInstance.RunPsTest(_logger, "Test-RemoveWebAppAccessRestriction");
7589
}
7690

91+
[Fact]
92+
[Trait(Category.AcceptanceType, Category.CheckIn)]
93+
public void TestRemoveWebAppAccessRestrictionServiceTag()
94+
{
95+
WebsitesController.NewInstance.RunPsTest(_logger, "Test-RemoveWebAppAccessRestrictionServiceTag");
96+
}
97+
7798
[Fact]
7899
[Trait(Category.AcceptanceType, Category.CheckIn)]
79100
public void TestAddWebAppAccessRestrictionScm()

src/Websites/Websites.Test/ScenarioTests/AccessRestrictionTests.ps1

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,98 @@ function Test-AddWebAppAccessRestriction
189189
}
190190
}
191191

192+
<#
193+
.SYNOPSIS
194+
Add ServiceTag Access Restriction
195+
#>
196+
function Test-AddWebAppAccessRestrictionServiceTag
197+
{
198+
# Setup
199+
$rgname = Get-ResourceGroupName
200+
$wname = Get-WebsiteName
201+
$location = Get-WebLocation
202+
$whpName = Get-WebHostPlanName
203+
$tier = "Shared"
204+
$serviceTag = "AzureFrontDoor.Backend"
205+
206+
try
207+
{
208+
# Setup
209+
New-AzResourceGroup -Name $rgname -Location $location
210+
$serverFarm = New-AzAppServicePlan -ResourceGroupName $rgname -Name $whpName -Location $location -Tier $tier
211+
212+
# Create new web app
213+
$webApp = New-AzWebApp -ResourceGroupName $rgname -Name $wname -Location $location -AppServicePlan $whpName
214+
215+
# Assert Setup
216+
Assert-AreEqual $wname $webApp.Name
217+
Assert-AreEqual $serverFarm.Id $webApp.ServerFarmId
218+
219+
# Run Tests
220+
$actual = Add-AzWebAppAccessRestrictionRule -ResourceGroupName $rgname -WebAppName $wname -Name frontdoor -Action Allow -ServiceTag $serviceTag -Priority 400 -PassThru
221+
222+
# Assert
223+
Assert-AreEqual 2 $actual.MainSiteAccessRestrictions.Count
224+
Assert-AreEqual "frontdoor" $actual.MainSiteAccessRestrictions[0].RuleName
225+
Assert-AreEqual "Allow" $actual.MainSiteAccessRestrictions[0].Action
226+
Assert-AreEqual $serviceTag $actual.MainSiteAccessRestrictions[0].IpAddress
227+
Assert-AreEqual "Deny all" $actual.MainSiteAccessRestrictions[1].RuleName
228+
Assert-AreEqual "Deny" $actual.MainSiteAccessRestrictions[1].Action
229+
}
230+
finally
231+
{
232+
# Cleanup
233+
Remove-AzResourceGroup -Name $rgname -Force
234+
}
235+
}
236+
237+
<#
238+
.SYNOPSIS
239+
Add HttpHeader Access Restriction
240+
#>
241+
function Test-AddWebAppAccessRestrictionHttpHeaders
242+
{
243+
# Setup
244+
$rgname = Get-ResourceGroupName
245+
$wname = Get-WebsiteName
246+
$location = Get-WebLocation
247+
$whpName = Get-WebHostPlanName
248+
$tier = "Shared"
249+
$serviceTag = "AzureFrontDoor.Backend"
250+
251+
try
252+
{
253+
# Setup
254+
New-AzResourceGroup -Name $rgname -Location $location
255+
$serverFarm = New-AzAppServicePlan -ResourceGroupName $rgname -Name $whpName -Location $location -Tier $tier
256+
257+
# Create new web app
258+
$webApp = New-AzWebApp -ResourceGroupName $rgname -Name $wname -Location $location -AppServicePlan $whpName
259+
260+
# Assert Setup
261+
Assert-AreEqual $wname $webApp.Name
262+
Assert-AreEqual $serverFarm.Id $webApp.ServerFarmId
263+
264+
# Run Tests
265+
$actual = Add-AzWebAppAccessRestrictionRule -ResourceGroupName $rgname -WebAppName $wname -Name singleinstance-frontdoor -Action Allow -ServiceTag $serviceTag `
266+
-Priority 500 -HttpHeader @{'x-azure-fdid' = '355deb06-47c4-4ba4-9641-c7d7a98b913e'; 'x-forwarded-host' = 'www.contoso.com', 'app.contoso.com' } -PassThru
267+
268+
# Assert
269+
Assert-AreEqual 2 $actual.MainSiteAccessRestrictions.Count
270+
Assert-AreEqual "singleinstance-frontdoor" $actual.MainSiteAccessRestrictions[0].RuleName
271+
Assert-AreEqual "Allow" $actual.MainSiteAccessRestrictions[0].Action
272+
Assert-AreEqual $serviceTag $actual.MainSiteAccessRestrictions[0].IpAddress
273+
Assert-NotNull $actual.MainSiteAccessRestrictions[0].HttpHeader
274+
Assert-AreEqual "Deny all" $actual.MainSiteAccessRestrictions[1].RuleName
275+
Assert-AreEqual "Deny" $actual.MainSiteAccessRestrictions[1].Action
276+
}
277+
finally
278+
{
279+
# Cleanup
280+
Remove-AzResourceGroup -Name $rgname -Force
281+
}
282+
}
283+
192284
<#
193285
.SYNOPSIS
194286
Add Subnet Access Restriction
@@ -299,6 +391,59 @@ function Test-RemoveWebAppAccessRestriction
299391
}
300392
}
301393

394+
<#
395+
.SYNOPSIS
396+
Add and Remove ServiceTag Access Restriction
397+
#>
398+
function Test-RemoveWebAppAccessRestrictionServiceTag
399+
{
400+
# Setup
401+
$rgname = Get-ResourceGroupName
402+
$wname = Get-WebsiteName
403+
$location = Get-WebLocation
404+
$whpName = Get-WebHostPlanName
405+
$tier = "Shared"
406+
$serviceTag = "AzureCloud"
407+
408+
try
409+
{
410+
# Setup
411+
New-AzResourceGroup -Name $rgname -Location $location
412+
$serverFarm = New-AzAppServicePlan -ResourceGroupName $rgname -Name $whpName -Location $location -Tier $tier
413+
414+
# Create new web app
415+
$webApp = New-AzWebApp -ResourceGroupName $rgname -Name $wname -Location $location -AppServicePlan $whpName
416+
417+
# Assert Setup
418+
Assert-AreEqual $wname $webApp.Name
419+
Assert-AreEqual $serverFarm.Id $webApp.ServerFarmId
420+
421+
# Run Tests
422+
$actual = Add-AzWebAppAccessRestrictionRule -ResourceGroupName $rgname -WebAppName $wname -Name all-azure -Action Allow -ServiceTag $serviceTag -Priority 400 -PassThru
423+
424+
# Assert
425+
Assert-AreEqual 2 $actual.MainSiteAccessRestrictions.Count
426+
Assert-AreEqual "all-azure" $actual.MainSiteAccessRestrictions[0].RuleName
427+
Assert-AreEqual $serviceTag $actual.MainSiteAccessRestrictions[0].IpAddress
428+
Assert-AreEqual "Allow" $actual.MainSiteAccessRestrictions[0].Action
429+
Assert-AreEqual "Deny all" $actual.MainSiteAccessRestrictions[1].RuleName
430+
Assert-AreEqual "Deny" $actual.MainSiteAccessRestrictions[1].Action
431+
432+
# Run Tests
433+
$actual = Remove-AzWebAppAccessRestrictionRule -ResourceGroupName $rgname -WebAppName $wname -ServiceTag $serviceTag -PassThru
434+
435+
# Assert
436+
Assert-AreEqual 1 $actual.MainSiteAccessRestrictions.Count
437+
Assert-AreEqual "Allow all" $actual.MainSiteAccessRestrictions[0].RuleName
438+
Assert-AreEqual "Allow" $actual.MainSiteAccessRestrictions[0].Action
439+
}
440+
finally
441+
{
442+
# Cleanup
443+
Remove-AzResourceGroup -Name $rgname -Force
444+
}
445+
}
446+
302447
<#
303448
.SYNOPSIS
304449
Add IpAddress Access Restriction to SCM Site

src/Websites/Websites.Test/SessionRecords/Microsoft.Azure.Commands.Websites.Test.ScenarioTests.AccessRestrictionTests/TestAddWebAppAccessRestriction.json

Lines changed: 389 additions & 389 deletions
Large diffs are not rendered by default.

src/Websites/Websites.Test/SessionRecords/Microsoft.Azure.Commands.Websites.Test.ScenarioTests.AccessRestrictionTests/TestAddWebAppAccessRestrictionHttpHeaders.json

Lines changed: 2258 additions & 0 deletions
Large diffs are not rendered by default.

src/Websites/Websites.Test/SessionRecords/Microsoft.Azure.Commands.Websites.Test.ScenarioTests.AccessRestrictionTests/TestAddWebAppAccessRestrictionScm.json

Lines changed: 356 additions & 356 deletions
Large diffs are not rendered by default.

src/Websites/Websites.Test/SessionRecords/Microsoft.Azure.Commands.Websites.Test.ScenarioTests.AccessRestrictionTests/TestAddWebAppAccessRestrictionServiceTag.json

Lines changed: 2258 additions & 0 deletions
Large diffs are not rendered by default.

src/Websites/Websites.Test/SessionRecords/Microsoft.Azure.Commands.Websites.Test.ScenarioTests.AccessRestrictionTests/TestAddWebAppAccessRestrictionSlot.json

Lines changed: 542 additions & 542 deletions
Large diffs are not rendered by default.

src/Websites/Websites.Test/SessionRecords/Microsoft.Azure.Commands.Websites.Test.ScenarioTests.AccessRestrictionTests/TestGetWebAppAccessRestriction.json

Lines changed: 333 additions & 333 deletions
Large diffs are not rendered by default.

src/Websites/Websites.Test/SessionRecords/Microsoft.Azure.Commands.Websites.Test.ScenarioTests.AccessRestrictionTests/TestRemoveWebAppAccessRestriction.json

Lines changed: 472 additions & 472 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)