Search in sources :

Example 21 with Form

use of jakarta.ws.rs.core.Form in project minijax by minijax.

the class EntityUtils method writeEntity.

/**
 * Writes an entity to the output stream.
 *
 * @param entity The entity.
 * @param mediaType The entity media type.
 * @param providers Optional providers for custom writers.
 * @param outputStream The output stream.
 */
@SuppressWarnings({ "rawtypes", "unchecked" })
public static void writeEntity(final Object entity, final MediaType mediaType, final Providers providers, final OutputStream outputStream) throws IOException {
    if (entity == null) {
        return;
    }
    if (entity instanceof byte[]) {
        outputStream.write((byte[]) entity);
        return;
    }
    if (entity instanceof InputStream) {
        IOUtils.copy((InputStream) entity, outputStream);
        return;
    }
    if (entity instanceof String) {
        outputStream.write(((String) entity).getBytes(StandardCharsets.UTF_8));
        return;
    }
    if (entity instanceof Form) {
        final String str = UrlUtils.urlEncodeMultivaluedParams(((Form) entity).asMap());
        outputStream.write(str.getBytes(StandardCharsets.UTF_8));
        return;
    }
    if (entity instanceof Multipart) {
        MultipartUtils.serializeMultipartForm((Multipart) entity, outputStream);
        return;
    }
    if (providers != null) {
        final MessageBodyWriter writer = providers.getMessageBodyWriter(entity.getClass(), null, null, mediaType);
        if (writer != null) {
            writer.writeTo(entity, entity.getClass(), null, null, mediaType, null, outputStream);
            return;
        }
    }
    throw new MinijaxException("No writer found for " + entity.getClass() + " and " + mediaType);
}
Also used : Multipart(org.minijax.rs.multipart.Multipart) Form(jakarta.ws.rs.core.Form) InputStream(java.io.InputStream) MinijaxException(org.minijax.commons.MinijaxException) MessageBodyWriter(jakarta.ws.rs.ext.MessageBodyWriter)

Example 22 with Form

use of jakarta.ws.rs.core.Form in project minijax by minijax.

the class ChangePasswordTest method testUserWithoutPassword.

@Test
void testUserWithoutPassword() throws IOException {
    final User user = new User();
    user.setName("Example 2");
    user.setEmail("pwd-2@example.com");
    user.setRoles("user");
    Cookie cookie = null;
    try (MinijaxRequestContext ctx = createRequestContext()) {
        ctx.getResource(Dao.class).create(user);
        cookie = ctx.getResource(Security.class).loginAs(user);
    }
    final Form form = new Form();
    form.param("csrf", cookie.getValue());
    form.param("oldPassword", "my-old-password");
    form.param("newPassword", "my-new-password");
    form.param("confirmNewPassword", "my-new-password");
    final Response r = target("/changepassword").request().cookie(cookie).post(Entity.form(form));
    assertNotNull(r);
    assertEquals(400, r.getStatus());
}
Also used : Cookie(jakarta.ws.rs.core.Cookie) Response(jakarta.ws.rs.core.Response) MinijaxRequestContext(org.minijax.rs.MinijaxRequestContext) Form(jakarta.ws.rs.core.Form) MinijaxTest(org.minijax.rs.test.MinijaxTest) Test(org.junit.jupiter.api.Test)

Example 23 with Form

use of jakarta.ws.rs.core.Form in project minijax by minijax.

the class ChangePasswordTest method testMismatchedPasswords.

@Test
void testMismatchedPasswords() throws IOException {
    final User user = new User();
    user.setName("Example 4");
    user.setEmail("pwd-4@example.com");
    user.setRoles("user");
    user.setPassword("my-old-password");
    Cookie cookie = null;
    try (MinijaxRequestContext ctx = createRequestContext()) {
        ctx.getResource(Dao.class).create(user);
        cookie = ctx.getResource(Security.class).loginAs(user);
    }
    final Form form = new Form();
    form.param("csrf", cookie.getValue());
    form.param("oldPassword", "my-old-password");
    form.param("newPassword", "my-new-password");
    form.param("confirmNewPassword", "different-password");
    final Response r = target("/changepassword").request().cookie(cookie).post(Entity.form(form));
    assertNotNull(r);
    assertEquals(400, r.getStatus());
}
Also used : Cookie(jakarta.ws.rs.core.Cookie) Response(jakarta.ws.rs.core.Response) MinijaxRequestContext(org.minijax.rs.MinijaxRequestContext) Form(jakarta.ws.rs.core.Form) MinijaxTest(org.minijax.rs.test.MinijaxTest) Test(org.junit.jupiter.api.Test)

Example 24 with Form

use of jakarta.ws.rs.core.Form in project minijax by minijax.

the class ChangePasswordTest method testChangePasswordSuccess.

@Test
void testChangePasswordSuccess() throws IOException {
    final User user = new User();
    user.setName("Example 1");
    user.setEmail("pwd-1@example.com");
    user.setRoles("user");
    user.setPassword("my-old-password");
    Cookie cookie = null;
    try (MinijaxRequestContext ctx = createRequestContext()) {
        ctx.getResource(Dao.class).create(user);
        cookie = ctx.getResource(Security.class).loginAs(user);
    }
    final Form form = new Form();
    form.param("csrf", cookie.getValue());
    form.param("oldPassword", "my-old-password");
    form.param("newPassword", "my-new-password");
    form.param("confirmNewPassword", "my-new-password");
    final Response r = target("/changepassword").request().cookie(cookie).post(Entity.form(form));
    assertNotNull(r);
    assertEquals(200, r.getStatus());
    try (MinijaxRequestContext ctx = createRequestContext()) {
        final User check = ctx.getResource(Dao.class).read(User.class, user.getId());
        assertFalse(BCrypt.checkpw("my-old-password", check.getPasswordHash()));
        assertTrue(BCrypt.checkpw("my-new-password", check.getPasswordHash()));
    }
}
Also used : Cookie(jakarta.ws.rs.core.Cookie) Response(jakarta.ws.rs.core.Response) MinijaxRequestContext(org.minijax.rs.MinijaxRequestContext) Form(jakarta.ws.rs.core.Form) MinijaxTest(org.minijax.rs.test.MinijaxTest) Test(org.junit.jupiter.api.Test)

Example 25 with Form

use of jakarta.ws.rs.core.Form in project minijax by minijax.

the class ChangePasswordTest method testPasswordTooShort.

@Test
void testPasswordTooShort() throws IOException {
    final User user = new User();
    user.setName("Example 5");
    user.setEmail("pwd-5@example.com");
    user.setRoles("user");
    user.setPassword("my-old-password");
    Cookie cookie = null;
    try (MinijaxRequestContext ctx = createRequestContext()) {
        ctx.getResource(Dao.class).create(user);
        cookie = ctx.getResource(Security.class).loginAs(user);
    }
    final Form form = new Form();
    form.param("csrf", cookie.getValue());
    form.param("oldPassword", "my-old-password");
    form.param("newPassword", "foo");
    form.param("confirmNewPassword", "foo");
    final Response r = target("/changepassword").request().cookie(cookie).post(Entity.form(form));
    assertNotNull(r);
    assertEquals(400, r.getStatus());
}
Also used : Cookie(jakarta.ws.rs.core.Cookie) Response(jakarta.ws.rs.core.Response) MinijaxRequestContext(org.minijax.rs.MinijaxRequestContext) Form(jakarta.ws.rs.core.Form) MinijaxTest(org.minijax.rs.test.MinijaxTest) Test(org.junit.jupiter.api.Test)

Aggregations

Form (jakarta.ws.rs.core.Form)80 Response (jakarta.ws.rs.core.Response)60 Test (org.junit.Test)33 Test (org.junit.jupiter.api.Test)24 MinijaxTest (org.minijax.rs.test.MinijaxTest)14 Builder (jakarta.ws.rs.client.Invocation.Builder)11 WebTarget (jakarta.ws.rs.client.WebTarget)10 MinijaxRequestContext (org.minijax.rs.MinijaxRequestContext)8 Cookie (jakarta.ws.rs.core.Cookie)7 MultivaluedHashMap (jakarta.ws.rs.core.MultivaluedHashMap)7 Client (jakarta.ws.rs.client.Client)6 ClientBuilder (jakarta.ws.rs.client.ClientBuilder)6 List (java.util.List)5 JsonBindingTest (org.jboss.resteasy.test.providers.jsonb.basic.JsonBindingTest)5 IOException (java.io.IOException)4 ResteasyWebTarget (org.jboss.resteasy.client.jaxrs.ResteasyWebTarget)4 PetClinicTest (com.example.PetClinicTest)3 Invocation (jakarta.ws.rs.client.Invocation)3 Owner (com.example.model.Owner)2 Holder (io.jans.as.model.common.Holder)2