Skip to content

Commit 9414653

Browse files
committed
manip ready to test
1 parent edceef8 commit 9414653

File tree

1 file changed

+74
-6
lines changed

1 file changed

+74
-6
lines changed

labapp/app/markdown/manipulation.md

+74-6
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ Configure a path <strong>prefix rewrite</strong> to remove part of the request p
2525
</li>
2626
<li class="list-group-item">
2727
<img src="/static/route-icon.png" width="auto" height="50px"> &nbsp; &nbsp;
28-
Requests to "<u>https://<i>eph-ns</i>.mcn-lab.f5demos.com<strong>/aws/raw</strong></u>" need to arrive at the origin with a path of "<strong>/raw</strong></u>"
28+
Requests to <strong>https://<i>eph-ns</i>.mcn-lab.f5demos.com<u>/aws/raw</u></strong> need to arrive at the origin with a path of <strong>/raw</strong></u>.
2929
</li>
3030
</ul>
3131

@@ -55,7 +55,7 @@ document.getElementById('requestBtn1').addEventListener('click', () => {
5555
});
5656
</script>
5757

58-
Since questions on this functionality are often asked on [F5 DevCentral](https://community.f5.com/), a hint might be warranted.
58+
Since questions on this functionality are often asked on <strong><a href="https://community.f5.com/" target="_blank">F5 DevCentral</a></strong>, a hint might be warranted.
5959

6060
<div id="hints">
6161
<p>
@@ -64,7 +64,7 @@ Since questions on this functionality are often asked on [F5 DevCentral](https:/
6464
</p>
6565
<div class="row">
6666
<div class="collapse multi-collapse" id="multiCollapseExample1" data-bs-parent="#hints">
67-
<img src="/static/rewrite1.png" width="800px" height="auto" alt="temp">
67+
<img src="/static/rewrite1.png" width="900px" height="auto" alt="temp">
6868
</div>
6969
<div class="collapse multi-collapse" id="multiCollapseExample2" data-bs-parent="#hints">
7070
<div class="">
@@ -76,9 +76,23 @@ Since questions on this functionality are often asked on [F5 DevCentral](https:/
7676

7777
<div style="height:25px"></div>
7878

79-
### **Exercise 2: Header Shenanigans**
79+
### **Exercise 2: Request Header Shenanigans**
8080

81-
Insert headers to identify
81+
While blind header insertion or deletion is useful in some use cases, this exercise focuses on context aware header manipulation.
82+
Use the <strong><a href="https://docs.cloud.f5.com/docs/how-to/advanced-security/configure-http-header-processing" target="_blank">XC Header Processing</a></strong> docs for reference.
83+
84+
<div style="height:25px"></div>
85+
86+
<ul class="list-group">
87+
<li class="list-group-item">
88+
<img src="/static/lb-icon.png" width="auto" height="50px"> &nbsp; &nbsp;
89+
Insert a request header named <strong>X-MCN-src-site</strong> to identifies the UDF CE to the origin. <u>Do not use a static value</u>.
90+
</li>
91+
<li class="list-group-item">
92+
<img src="/static/lb-icon.png" width="auto" height="50px"> &nbsp; &nbsp;
93+
Insert a request header named <strong>X-MCN-namespace</strong> to identifies the ephemeral namespace to the origin. <u>Do not use a static value</u>.
94+
</li>
95+
</ul>
8296

8397
<div style="height:25px"></div>
8498

@@ -89,7 +103,11 @@ GET https://eph-ns.mcn-lab.f5demos.com/ HTTP/1.1
89103
Host: eph-ns.mcn-lab.f5demos.com
90104
91105
{
92-
"env": "azure",
106+
...
107+
"request_headers": {
108+
"x-mcn-namespace": "wiggly-yellowtail",
109+
"X-mcn-src-Site": "cluster-xxxxxxxx",
110+
},
93111
...
94112
}
95113
```
@@ -104,6 +122,56 @@ document.getElementById('requestBtn2').addEventListener('click', () => {
104122
});
105123
</script>
106124

125+
<div style="height:25px"></div>
126+
127+
### **Exercise 3: Response Header Shenanigans**
128+
129+
<div style="height:25px"></div>
130+
131+
<ul class="list-group">
132+
<li class="list-group-item">
133+
<img src="/static/lb-icon.png" width="auto" height="50px"> &nbsp; &nbsp;
134+
Insert a response header named <strong>X-MCN-dst-site</strong> to determine which cloud CE processed the request.
135+
</li>
136+
</ul>
137+
138+
<div style="height:25px"></div>
139+
140+
#### **Test Criteria**
141+
142+
<div style="height:25px"></div>
143+
144+
<strong><u>This test will evaluate response headers.</u></strong>
145+
146+
```http
147+
GET https://eph-ns.mcn-lab.f5demos.com/aws HTTP/1.1
148+
Host: eph-ns.mcn-lab.f5demos.com
149+
150+
{
151+
"x-mcn-dest-site": "student-awsnet"
152+
}
153+
```
154+
155+
```http
156+
GET https://eph-ns.mcn-lab.f5demos.com/azure HTTP/1.1
157+
Host: eph-ns.mcn-lab.f5demos.com
158+
159+
{
160+
"x-mcn-dest-site": "student-azurenet"
161+
}
162+
```
163+
164+
<div class="left-aligned-button-container">
165+
<button id="requestBtn2" class="btn btn-primary">Test Load Balancer</button>
166+
</div>
167+
<div id="result2" class="mt-3"></div>
168+
<script>
169+
document.getElementById('requestBtn2').addEventListener('click', () => {
170+
makeHttpRequest('requestBtn2', '/_manip2', 'result2');
171+
});
172+
</script>
173+
174+
107175
<div style="height:25px" class="d-flex align-items-center pb-3 mb-3 link-dark text-decoration-none border-bottom"></div>
108176

109177
Nice 🚀! If you've completed all the exercises so far, you have a good foundation for how App Connect addresses common L7 MCN scenarios.

0 commit comments

Comments
 (0)