Rename header operation policy
### Description:
<!-- Describe the issue -->
current implementation of rename_header written as equal to set_header policy.
but rename_header has a different attribute list and it should be renaming the header name, not just updating the header value.

### Steps to reproduce:

### Affected Product Version:
<!-- Members can use Affected/*** labels -->

### Environment details (with versions):
- OS:
- Client:
- Env (Docker/K8s):

---
### Optional Fields
#### Related Issues:
<!-- Any related issues from this/other repositories-->

#### Suggested Labels:
<!--Only to be used by non-members-->

#### Suggested Assignees:
<!--Only to be used by non-members-->

diff --git a/enforcer-parent/enforcer/src/main/java/org/wso2/choreo/connect/enforcer/interceptor/MediationPolicyFilter.java b/enforcer-parent/enforcer/src/main/java/org/wso2/choreo/connect/enforcer/interceptor/MediationPolicyFilter.java
index e08c8e3cd..51c67f2bf 100644
--- a/enforcer-parent/enforcer/src/main/java/org/wso2/choreo/connect/enforcer/interceptor/MediationPolicyFilter.java
+++ b/enforcer-parent/enforcer/src/main/java/org/wso2/choreo/connect/enforcer/interceptor/MediationPolicyFilter.java
@@ -48,11 +48,14 @@ public class MediationPolicyFilter implements Filter {
     private void applyPolicy(RequestContext requestContext, Policy policy) {
         //todo(amali) check policy order
         switch (policy.getTemplateName()) {
-            case "SET_HEADER":
-            case "RENAME_HEADER": {
+            case "SET_HEADER": {
                 addOrModifyHeader(requestContext, policy.getParameters());
                 break;
             }
+            case "RENAME_HEADER": {
+                renameHeader(requestContext, policy.getParameters());
+                break;
+            }
             case "REMOVE_HEADER": {
                 removeHeader(requestContext, policy.getParameters());
                 break;
@@ -82,6 +85,16 @@ public class MediationPolicyFilter implements Filter {
         requestContext.addOrModifyHeaders(headerName, headerValue);
     }
 
+    private void renameHeader(RequestContext requestContext, Map<String, String> policyAttrib) {
+        String currentHeaderName = policyAttrib.get("currentHeaderName");
+        String updatedHeaderValue = policyAttrib.get("updatedHeaderName");
+        if (requestContext.getHeaders().containsKey(currentHeaderName)) {
+            String headerValue = requestContext.getHeaders().get(currentHeaderName);
+            requestContext.getRemoveHeaders().add(currentHeaderName);
+            requestContext.addOrModifyHeaders(updatedHeaderValue, headerValue);
+        }
+    }
+
     private void removeHeader(RequestContext requestContext, Map<String, String> policyAttrib) {
         String headerName = policyAttrib.get("headerName");
         requestContext.getRemoveHeaders().add(headerName);
['enforcer-parent/enforcer/src/main/java/org/wso2/choreo/connect/enforcer/interceptor/MediationPolicyFilter.java']