|
19 | 19 | import org.apache.cloudstack.api.auth.APIAuthenticationManager; |
20 | 20 | import org.apache.cloudstack.api.auth.APIAuthenticationType; |
21 | 21 | import org.apache.cloudstack.api.auth.APIAuthenticator; |
| 22 | + |
22 | 23 | import com.cloud.server.ManagementServer; |
23 | 24 | import com.cloud.user.Account; |
24 | 25 | import com.cloud.user.AccountService; |
25 | 26 | import com.cloud.user.User; |
| 27 | + |
26 | 28 | import org.apache.cloudstack.api.ApiConstants; |
27 | 29 | import org.junit.After; |
28 | 30 | import org.junit.Assert; |
|
36 | 38 | import javax.servlet.http.HttpServletRequest; |
37 | 39 | import javax.servlet.http.HttpServletResponse; |
38 | 40 | import javax.servlet.http.HttpSession; |
| 41 | + |
39 | 42 | import java.io.IOException; |
40 | 43 | import java.io.PrintWriter; |
41 | 44 | import java.io.StringWriter; |
@@ -81,6 +84,7 @@ public class ApiServletTest { |
81 | 84 |
|
82 | 85 | ApiServlet servlet; |
83 | 86 |
|
| 87 | + @SuppressWarnings("unchecked") |
84 | 88 | @Before |
85 | 89 | public void setup() throws SecurityException, NoSuchFieldException, |
86 | 90 | IllegalArgumentException, IllegalAccessException, IOException { |
@@ -192,6 +196,7 @@ public void processRequestInContextAuthorizedGet() { |
192 | 196 | Mockito.any(StringBuilder.class)); |
193 | 197 | } |
194 | 198 |
|
| 199 | + @SuppressWarnings("unchecked") |
195 | 200 | @Test |
196 | 201 | public void processRequestInContextLogout() { |
197 | 202 | Mockito.when(request.getMethod()).thenReturn("GET"); |
@@ -234,4 +239,35 @@ public void processRequestInContextLogin() { |
234 | 239 | Mockito.verify(authenticator).authenticate(Mockito.anyString(), Mockito.anyMap(), Mockito.isA(HttpSession.class), |
235 | 240 | Mockito.anyString(), Mockito.anyString(), Mockito.isA(StringBuilder.class), Mockito.isA(HttpServletResponse.class)); |
236 | 241 | } |
| 242 | + |
| 243 | + @Test |
| 244 | + public void getClientAddressWithXForwardedFor() { |
| 245 | + Mockito.when(request.getHeader(Mockito.eq("X-Forwarded-For"))).thenReturn("192.168.1.1"); |
| 246 | + Assert.assertEquals("192.168.1.1", ApiServlet.getClientAddress(request)); |
| 247 | + } |
| 248 | + |
| 249 | + @Test |
| 250 | + public void getClientAddressWithHttpXForwardedFor() { |
| 251 | + Mockito.when(request.getHeader(Mockito.eq("HTTP_X_FORWARDED_FOR"))).thenReturn("192.168.1.1"); |
| 252 | + Assert.assertEquals("192.168.1.1", ApiServlet.getClientAddress(request)); |
| 253 | + } |
| 254 | + |
| 255 | + @Test |
| 256 | + public void getClientAddressWithXRemoteAddr() { |
| 257 | + Mockito.when(request.getHeader(Mockito.eq("Remote_Addr"))).thenReturn("192.168.1.1"); |
| 258 | + Assert.assertEquals("192.168.1.1", ApiServlet.getClientAddress(request)); |
| 259 | + } |
| 260 | + |
| 261 | + @Test |
| 262 | + public void getClientAddressWithHttpClientIp() { |
| 263 | + Mockito.when(request.getHeader(Mockito.eq("HTTP_CLIENT_IP"))).thenReturn("192.168.1.1"); |
| 264 | + Assert.assertEquals("192.168.1.1", ApiServlet.getClientAddress(request)); |
| 265 | + } |
| 266 | + |
| 267 | + @Test |
| 268 | + public void getClientAddressDefault() { |
| 269 | + Mockito.when(request.getRemoteAddr()).thenReturn("127.0.0.1"); |
| 270 | + Assert.assertEquals("127.0.0.1", ApiServlet.getClientAddress(request)); |
| 271 | + } |
| 272 | + |
237 | 273 | } |
0 commit comments