|
26 | 26 | import java.util.Arrays; |
27 | 27 | import java.util.Collections; |
28 | 28 | import java.util.List; |
| 29 | +import java.util.Set; |
29 | 30 | import java.util.logging.Logger; |
30 | 31 |
|
31 | 32 | /** |
@@ -65,12 +66,23 @@ public void doFilter(ServletRequest request, ServletResponse response, FilterCha |
65 | 66 | HttpServletRequest req = (HttpServletRequest) request; |
66 | 67 | HttpServletResponse resp = (HttpServletResponse) response; |
67 | 68 |
|
68 | | - resp.addHeader("Access-Control-Allow-Credentials", "true"); |
69 | | - resp.addHeader("Access-Control-Allow-Origin", "https://observability.browserstack.com"); |
70 | | - resp.addHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT"); |
71 | | - resp.addHeader("Access-Control-Allow-Headers", "*"); |
72 | | - resp.addHeader("Access-Control-Expose-Headers", "*"); |
73 | | - resp.addHeader("Access-Control-Max-Age", "999"); |
| 69 | + Set<String> allowedOrigins = Set.of( |
| 70 | + "https://observability.browserstack.com", |
| 71 | + "https://automation.browserstack.com", |
| 72 | + "https://automate.browserstack.com", |
| 73 | + "https://app-automate.browserstack.com", |
| 74 | + "https://test-management.browserstack.com" |
| 75 | + ); |
| 76 | + |
| 77 | + String origin = req.getHeader("Origin"); |
| 78 | + if (origin != null && allowedOrigins.contains(origin)) { |
| 79 | + resp.addHeader("Access-Control-Allow-Credentials", "true"); |
| 80 | + resp.addHeader("Access-Control-Allow-Origin", origin); |
| 81 | + resp.addHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT"); |
| 82 | + resp.addHeader("Access-Control-Allow-Headers", "*"); |
| 83 | + resp.addHeader("Access-Control-Expose-Headers", "*"); |
| 84 | + resp.addHeader("Access-Control-Max-Age", "999"); |
| 85 | + } |
74 | 86 |
|
75 | 87 | if (req.getMethod().equals(PREFLIGHT_REQUEST)) { |
76 | 88 | resp.setStatus(200); |
|
0 commit comments