From b8e726e4dc5b1581c3b40d9093fdf37e6218b28e Mon Sep 17 00:00:00 2001 From: Cleverson Sacramento Date: Wed, 25 Sep 2013 15:45:12 -0300 Subject: [PATCH] IN PROGRESS - issue FWK-119: Testes da extensão Servlet --- impl/extension/jsf/src/test/java/exception/handler/authentication/AuthenticationExceptionTest.java | 2 +- impl/extension/servlet/src/test/java/security/SecurityServlet.java | 41 ----------------------------------------- impl/extension/servlet/src/test/java/security/SecurityTest.java | 66 ------------------------------------------------------------------ impl/extension/servlet/src/test/java/security/authentication/form/HelperServlet.java | 41 +++++++++++++++++++++++++++++++++++++++++ impl/extension/servlet/src/test/java/security/authentication/form/ServletAuthenticatorTest.java | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ impl/extension/servlet/src/test/resources/security/authentication/basic/web.xml | 22 +--------------------- impl/extension/servlet/src/test/resources/security/authentication/form/web.xml | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ impl/extension/servlet/src/test/resources/security/web.xml | 82 ---------------------------------------------------------------------------------- 8 files changed, 170 insertions(+), 211 deletions(-) delete mode 100644 impl/extension/servlet/src/test/java/security/SecurityServlet.java delete mode 100644 impl/extension/servlet/src/test/java/security/SecurityTest.java create mode 100644 impl/extension/servlet/src/test/java/security/authentication/form/HelperServlet.java create mode 100644 impl/extension/servlet/src/test/java/security/authentication/form/ServletAuthenticatorTest.java create mode 100644 impl/extension/servlet/src/test/resources/security/authentication/form/web.xml delete mode 100644 impl/extension/servlet/src/test/resources/security/web.xml diff --git a/impl/extension/jsf/src/test/java/exception/handler/authentication/AuthenticationExceptionTest.java b/impl/extension/jsf/src/test/java/exception/handler/authentication/AuthenticationExceptionTest.java index 5246313..a8ef3c9 100644 --- a/impl/extension/jsf/src/test/java/exception/handler/authentication/AuthenticationExceptionTest.java +++ b/impl/extension/jsf/src/test/java/exception/handler/authentication/AuthenticationExceptionTest.java @@ -59,7 +59,7 @@ public class AuthenticationExceptionTest { @ArquillianResource private URL deploymentUrl; - private static final String PATH = "src/test/resources/security-authentication"; + private static final String PATH = "src/test/resources/security.authentication.form-authentication"; @Deployment(testable = false) public static WebArchive createDeployment() { diff --git a/impl/extension/servlet/src/test/java/security/SecurityServlet.java b/impl/extension/servlet/src/test/java/security/SecurityServlet.java deleted file mode 100644 index f2b7a66..0000000 --- a/impl/extension/servlet/src/test/java/security/SecurityServlet.java +++ /dev/null @@ -1,41 +0,0 @@ -package security; - -import static org.apache.http.HttpStatus.SC_FORBIDDEN; -import static org.apache.http.HttpStatus.SC_OK; - -import java.io.IOException; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import br.gov.frameworkdemoiselle.security.AuthenticationException; -import br.gov.frameworkdemoiselle.security.Credentials; -import br.gov.frameworkdemoiselle.security.SecurityContext; -import br.gov.frameworkdemoiselle.util.Beans; - -@WebServlet("/login") -public class SecurityServlet extends HttpServlet { - - private static final long serialVersionUID = 1L; - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String result = request.getHeader("Authorization"); - result = (result == null ? request.getHeader("authorization") : result); - - Credentials credentials = Beans.getReference(Credentials.class); - credentials.setUsername(request.getParameter("username")); - credentials.setPassword(request.getParameter("password")); - - try { - Beans.getReference(SecurityContext.class).login(); - response.setStatus(SC_OK); - - } catch (AuthenticationException e) { - response.setStatus(SC_FORBIDDEN); - } - } -} diff --git a/impl/extension/servlet/src/test/java/security/SecurityTest.java b/impl/extension/servlet/src/test/java/security/SecurityTest.java deleted file mode 100644 index 27a58d0..0000000 --- a/impl/extension/servlet/src/test/java/security/SecurityTest.java +++ /dev/null @@ -1,66 +0,0 @@ -package security; - -import static org.apache.http.HttpStatus.SC_FORBIDDEN; -import static org.apache.http.HttpStatus.SC_OK; -import static org.junit.Assert.assertEquals; - -import java.io.IOException; -import java.net.URISyntaxException; -import java.net.URL; - -import org.apache.http.HttpResponse; -import org.apache.http.client.ClientProtocolException; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.utils.URIBuilder; -import org.apache.http.impl.client.HttpClientBuilder; -import org.jboss.arquillian.container.test.api.Deployment; -import org.jboss.arquillian.junit.Arquillian; -import org.jboss.arquillian.test.api.ArquillianResource; -import org.jboss.shrinkwrap.api.spec.WebArchive; -import org.junit.Test; -import org.junit.runner.RunWith; - -import test.Tests; - -import com.sun.enterprise.security.auth.login.FileLoginModule; - -@RunWith(Arquillian.class) -public class SecurityTest { - - private static final String PATH = "src/test/resources/security"; - - @ArquillianResource - private URL deploymentUrl; - - @Deployment(testable = false) - public static WebArchive createDeployment() { - return Tests.createDeployment().addClasses(SecurityServlet.class, FileLoginModule.class) - .addAsWebInfResource(Tests.createFileAsset(PATH + "/web.xml"), "web.xml"); - } - - @Test - public void loginSucessfull() throws ClientProtocolException, IOException, URISyntaxException { - URIBuilder uriBuilder = new URIBuilder(deploymentUrl + "/login"); - uriBuilder.setParameter("username", "demoiselle"); - uriBuilder.setParameter("password", "changeit"); - - HttpGet httpGet = new HttpGet(uriBuilder.build()); - HttpResponse httpResponse = HttpClientBuilder.create().build().execute(httpGet); - - int status = httpResponse.getStatusLine().getStatusCode(); - assertEquals(SC_OK, status); - } - - @Test - public void loginFailed() throws ClientProtocolException, IOException, URISyntaxException { - URIBuilder uriBuilder = new URIBuilder(deploymentUrl + "/login"); - uriBuilder.setParameter("username", "invalid"); - uriBuilder.setParameter("password", "invalid"); - - HttpGet get = new HttpGet(uriBuilder.build()); - HttpResponse response = HttpClientBuilder.create().build().execute(get); - - int status = response.getStatusLine().getStatusCode(); - assertEquals(SC_FORBIDDEN, status); - } -} diff --git a/impl/extension/servlet/src/test/java/security/authentication/form/HelperServlet.java b/impl/extension/servlet/src/test/java/security/authentication/form/HelperServlet.java new file mode 100644 index 0000000..f347f31 --- /dev/null +++ b/impl/extension/servlet/src/test/java/security/authentication/form/HelperServlet.java @@ -0,0 +1,41 @@ +package security.authentication.form; + +import static org.apache.http.HttpStatus.SC_FORBIDDEN; +import static org.apache.http.HttpStatus.SC_OK; + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import br.gov.frameworkdemoiselle.security.AuthenticationException; +import br.gov.frameworkdemoiselle.security.Credentials; +import br.gov.frameworkdemoiselle.security.SecurityContext; +import br.gov.frameworkdemoiselle.util.Beans; + +@WebServlet("/login") +public class HelperServlet extends HttpServlet { + + private static final long serialVersionUID = 1L; + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + String result = request.getHeader("Authorization"); + result = (result == null ? request.getHeader("authorization") : result); + + Credentials credentials = Beans.getReference(Credentials.class); + credentials.setUsername(request.getParameter("username")); + credentials.setPassword(request.getParameter("password")); + + try { + Beans.getReference(SecurityContext.class).login(); + response.setStatus(SC_OK); + + } catch (AuthenticationException e) { + response.setStatus(SC_FORBIDDEN); + } + } +} diff --git a/impl/extension/servlet/src/test/java/security/authentication/form/ServletAuthenticatorTest.java b/impl/extension/servlet/src/test/java/security/authentication/form/ServletAuthenticatorTest.java new file mode 100644 index 0000000..a6ffce2 --- /dev/null +++ b/impl/extension/servlet/src/test/java/security/authentication/form/ServletAuthenticatorTest.java @@ -0,0 +1,66 @@ +package security.authentication.form; + +import static org.apache.http.HttpStatus.SC_FORBIDDEN; +import static org.apache.http.HttpStatus.SC_OK; +import static org.junit.Assert.assertEquals; + +import java.io.IOException; +import java.net.URISyntaxException; +import java.net.URL; + +import org.apache.http.HttpResponse; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.utils.URIBuilder; +import org.apache.http.impl.client.HttpClientBuilder; +import org.jboss.arquillian.container.test.api.Deployment; +import org.jboss.arquillian.junit.Arquillian; +import org.jboss.arquillian.test.api.ArquillianResource; +import org.jboss.shrinkwrap.api.spec.WebArchive; +import org.junit.Test; +import org.junit.runner.RunWith; + +import test.Tests; + +import com.sun.enterprise.security.auth.login.FileLoginModule; + +@RunWith(Arquillian.class) +public class ServletAuthenticatorTest { + + private static final String PATH = "src/test/resources/security/authentication/form"; + + @ArquillianResource + private URL deploymentUrl; + + @Deployment(testable = false) + public static WebArchive createDeployment() { + return Tests.createDeployment().addClasses(HelperServlet.class, FileLoginModule.class) + .addAsWebInfResource(Tests.createFileAsset(PATH + "/web.xml"), "web.xml"); + } + + @Test + public void loginSucessfull() throws ClientProtocolException, IOException, URISyntaxException { + URIBuilder uriBuilder = new URIBuilder(deploymentUrl + "/helper"); + uriBuilder.setParameter("username", "demoiselle"); + uriBuilder.setParameter("password", "changeit"); + + HttpGet httpGet = new HttpGet(uriBuilder.build()); + HttpResponse httpResponse = HttpClientBuilder.create().build().execute(httpGet); + + int status = httpResponse.getStatusLine().getStatusCode(); + assertEquals(SC_OK, status); + } + + @Test + public void loginFailed() throws ClientProtocolException, IOException, URISyntaxException { + URIBuilder uriBuilder = new URIBuilder(deploymentUrl + "/helper"); + uriBuilder.setParameter("username", "invalid"); + uriBuilder.setParameter("password", "invalid"); + + HttpGet get = new HttpGet(uriBuilder.build()); + HttpResponse response = HttpClientBuilder.create().build().execute(get); + + int status = response.getStatusLine().getStatusCode(); + assertEquals(SC_FORBIDDEN, status); + } +} diff --git a/impl/extension/servlet/src/test/resources/security/authentication/basic/web.xml b/impl/extension/servlet/src/test/resources/security/authentication/basic/web.xml index 1abea33..0787f10 100644 --- a/impl/extension/servlet/src/test/resources/security/authentication/basic/web.xml +++ b/impl/extension/servlet/src/test/resources/security/authentication/basic/web.xml @@ -57,25 +57,5 @@ Helper Servlet /helper - - - + \ No newline at end of file diff --git a/impl/extension/servlet/src/test/resources/security/authentication/form/web.xml b/impl/extension/servlet/src/test/resources/security/authentication/form/web.xml new file mode 100644 index 0000000..641173c --- /dev/null +++ b/impl/extension/servlet/src/test/resources/security/authentication/form/web.xml @@ -0,0 +1,61 @@ + + + + + br.gov.frameworkdemoiselle.util.ServletListener + + + + Demoiselle Servlet Filter + br.gov.frameworkdemoiselle.util.ServletFilter + + + Demoiselle Servlet Filter + /* + + + + Helper Servlet + security.authentication.form.HelperServlet + + + Helper Servlet + /helper + + \ No newline at end of file diff --git a/impl/extension/servlet/src/test/resources/security/web.xml b/impl/extension/servlet/src/test/resources/security/web.xml deleted file mode 100644 index 947e223..0000000 --- a/impl/extension/servlet/src/test/resources/security/web.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - - br.gov.frameworkdemoiselle.util.ServletListener - - - - Demoiselle Servlet Filter - br.gov.frameworkdemoiselle.util.ServletFilter - - - Demoiselle Servlet Filter - /* - - - - Security Class - security.SecurityServlet - - - Security Class - /login - - - - \ No newline at end of file -- libgit2 0.21.2