use of org.apereo.cas.util.MockWebServer in project cas by apereo.
the class AccepttoQRCodeValidateWebSocketChannelActionTests method verifyOperation.
@Test
public void verifyOperation() throws Exception {
val httpRequest = new MockHttpServletRequest();
httpRequest.setRemoteAddr("185.86.151.11");
httpRequest.setLocalAddr("185.88.151.11");
httpRequest.addParameter("channel", "test-channel");
ClientInfoHolder.setClientInfo(new ClientInfo(httpRequest));
val data = MAPPER.writeValueAsString(CollectionUtils.wrap("success", "true", "user_email", "cas@example.org"));
try (val webServer = new MockWebServer(5012, new ByteArrayResource(data.getBytes(StandardCharsets.UTF_8), "Output"), HttpStatus.OK)) {
webServer.start();
val action = new AccepttoQRCodeValidateWebSocketChannelAction(casProperties, mfaAccepttoDistributedSessionStore);
val context = new MockRequestContext();
val response = new MockHttpServletResponse();
context.setExternalContext(new ServletExternalContext(new MockServletContext(), httpRequest, response));
WebUtils.putAuthentication(CoreAuthenticationTestUtils.getAuthentication("casuser"), context);
RequestContextHolder.setRequestContext(context);
AccepttoWebflowUtils.setChannel(context, "test-channel");
val result = action.doExecute(context);
assertEquals(CasWebflowConstants.TRANSITION_ID_FINALIZE, result.getId());
assertTrue(WebUtils.getCredential(context) instanceof AccepttoEmailCredential);
}
}
use of org.apereo.cas.util.MockWebServer in project cas by apereo.
the class AccepttoApiUtilsTests method verifyUserInvalidData.
@Test
public void verifyUserInvalidData() throws Exception {
val properties = new AccepttoMultifactorAuthenticationProperties();
properties.setGroupAttribute("group");
properties.setEmailAttribute("email");
properties.setApplicationId("appid");
properties.setSecret("p@$$w0rd");
properties.setApiUrl("http://localhost:9289");
val principal = CoreAuthenticationTestUtils.getPrincipal(Map.of("email", List.of("cas@example.org"), "group", List.of("staff")));
val authentication = CoreAuthenticationTestUtils.getAuthentication(principal);
val data = MAPPER.writeValueAsString("__.. ..___$$$@@@");
try (val webServer = new MockWebServer(9289, new ByteArrayResource(data.getBytes(StandardCharsets.UTF_8), "REST Output"), MediaType.APPLICATION_JSON_VALUE)) {
webServer.start();
val user = AccepttoApiUtils.isUserValid(authentication, properties);
assertTrue(user.isEmpty());
}
}
use of org.apereo.cas.util.MockWebServer in project cas by apereo.
the class AccepttoApiUtilsTests method verifyAuthenticate.
@Test
public void verifyAuthenticate() throws Exception {
val properties = new AccepttoMultifactorAuthenticationProperties();
properties.setGroupAttribute("group");
properties.setEmailAttribute("email");
properties.setApplicationId("appid");
properties.setSecret("p@$$w0rd");
properties.setRegistrationApiUrl("http://localhost:9285");
properties.setOrganizationId("org-id");
properties.setOrganizationSecret("255724611137f7eb0280dd76b0546eea4bca1c7ba1");
val principal = CoreAuthenticationTestUtils.getPrincipal(Map.of("email", List.of("cas@example.org"), "group", List.of("staff")));
val authentication = CoreAuthenticationTestUtils.getAuthentication(principal);
val context = new MockRequestContext();
val request = new MockHttpServletRequest();
request.setRemoteAddr("185.86.151.11");
request.setLocalAddr("185.88.151.11");
request.setCookies(new Cookie("jwt", UUID.randomUUID().toString()));
ClientInfoHolder.setClientInfo(new ClientInfo(request));
val response = new MockHttpServletResponse();
context.setExternalContext(new ServletExternalContext(new MockServletContext(), request, response));
AccepttoWebflowUtils.setEGuardianUserId(context, "eguardian-userid");
WebUtils.putCredential(context, new AccepttoEmailCredential("cas@example.org"));
val keyGen = KeyPairGenerator.getInstance("RSA");
val pair = keyGen.generateKeyPair();
val priv = pair.getPrivate();
val pub = pair.getPublic();
val payload = MAPPER.writeValueAsString(Map.of("uid", "casuser"));
val jwt = EncodingUtils.signJwsRSASha512(priv, payload.getBytes(StandardCharsets.UTF_8), Map.of());
var data = MAPPER.writeValueAsString(Map.of("content", new String(jwt, StandardCharsets.UTF_8)));
try (val webServer = new MockWebServer(9285, new ByteArrayResource(data.getBytes(StandardCharsets.UTF_8), "REST Output"), MediaType.APPLICATION_JSON_VALUE)) {
webServer.start();
val results = AccepttoApiUtils.authenticate(authentication, properties, context, pub);
assertNotNull(results);
}
try (val webServer = new MockWebServer(9285, new ByteArrayResource(StringUtils.EMPTY.getBytes(StandardCharsets.UTF_8), "REST Output"), MediaType.APPLICATION_JSON_VALUE)) {
webServer.start();
val results = AccepttoApiUtils.authenticate(authentication, properties, context, pub);
assertTrue(results.isEmpty());
}
}
use of org.apereo.cas.util.MockWebServer in project cas by apereo.
the class AccepttoMultifactorAuthenticationHandlerTests method verifyOperationUnAuthz.
@Test
public void verifyOperationUnAuthz() throws Exception {
val data = MAPPER.writeValueAsString(CollectionUtils.wrap("device_id", "deviceid-test", "status", "approved"));
try (val webServer = new MockWebServer(5002, new ByteArrayResource(data.getBytes(StandardCharsets.UTF_8), "Output"), HttpStatus.UNAUTHORIZED)) {
webServer.start();
val handler = buildHandler();
val credential = new AccepttoMultifactorTokenCredential("test-channel");
assertThrows(FailedLoginException.class, () -> handler.authenticate(credential));
}
}
use of org.apereo.cas.util.MockWebServer in project cas by apereo.
the class AccepttoMultifactorAuthenticationHandlerTests method verifyOperationDeclined.
@Test
public void verifyOperationDeclined() throws Exception {
val data = MAPPER.writeValueAsString(CollectionUtils.wrap("device_id", "deviceid-test", "status", "declined"));
try (val webServer = new MockWebServer(5002, new ByteArrayResource(data.getBytes(StandardCharsets.UTF_8), "Output"), HttpStatus.OK)) {
webServer.start();
val handler = buildHandler();
val credential = new AccepttoMultifactorTokenCredential("test-channel");
assertThrows(FailedLoginException.class, () -> handler.authenticate(credential));
}
}
Aggregations