diff --git a/impl/extension/servlet/pom.xml b/impl/extension/servlet/pom.xml
index 346b0b1..1d459c6 100755
--- a/impl/extension/servlet/pom.xml
+++ b/impl/extension/servlet/pom.xml
@@ -88,7 +88,7 @@
org.apache.httpcomponents
httpclient
- 4.2.6
+ 4.3
test
diff --git a/impl/extension/servlet/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/InternalProcessorFilterImpl.java b/impl/extension/servlet/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/InternalProcessorFilterImpl.java
index fc4b77f..5d4426c 100644
--- a/impl/extension/servlet/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/InternalProcessorFilterImpl.java
+++ b/impl/extension/servlet/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/InternalProcessorFilterImpl.java
@@ -24,9 +24,9 @@ public class InternalProcessorFilterImpl implements InternalProcessorFilter {
filters.add(new HttpServletRequestProducerFilter());
filters.add(new HttpServletResponseProducerFilter());
-
+
// TODO Analizar o uso do BasicAuthenticationFilter
- // filters.add(new BasicAuthenticationFilter());
+ filters.add(new BasicAuthenticationFilter());
}
@Override
diff --git a/impl/extension/servlet/src/test/java/producer/request/HelperServlet.java b/impl/extension/servlet/src/test/java/producer/request/HelperServlet.java
new file mode 100644
index 0000000..a54672d
--- /dev/null
+++ b/impl/extension/servlet/src/test/java/producer/request/HelperServlet.java
@@ -0,0 +1,30 @@
+package producer.request;
+
+import static org.apache.http.HttpStatus.SC_INTERNAL_SERVER_ERROR;
+import static org.apache.http.HttpStatus.SC_OK;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import br.gov.frameworkdemoiselle.util.Beans;
+
+public class HelperServlet extends HttpServlet {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+
+ HttpServletRequest httpRequest = Beans.getReference(HttpServletRequest.class);
+
+ if (httpRequest != null) {
+ response.setStatus(SC_OK);
+ } else {
+ response.setStatus(SC_INTERNAL_SERVER_ERROR);
+ }
+ }
+}
diff --git a/impl/extension/servlet/src/test/java/producer/request/HttpServletRequestProducerTest.java b/impl/extension/servlet/src/test/java/producer/request/HttpServletRequestProducerTest.java
index 54e9f35..d7a7195 100644
--- a/impl/extension/servlet/src/test/java/producer/request/HttpServletRequestProducerTest.java
+++ b/impl/extension/servlet/src/test/java/producer/request/HttpServletRequestProducerTest.java
@@ -1,15 +1,15 @@
package producer.request;
import static junit.framework.Assert.assertEquals;
+import static org.apache.http.HttpStatus.SC_OK;
import java.io.IOException;
import java.net.URL;
import org.apache.http.HttpResponse;
-import org.apache.http.HttpStatus;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
-import org.apache.http.impl.client.DefaultHttpClient;
+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;
@@ -29,16 +29,16 @@ public class HttpServletRequestProducerTest {
@Deployment(testable = false)
public static WebArchive createDeployment() {
- return Tests.createDeployment().addClass(RequestServlet.class)
+ return Tests.createDeployment().addClass(HelperServlet.class)
.addAsWebInfResource(Tests.createFileAsset(PATH + "/web.xml"), "web.xml");
}
@Test
- public void createR() throws ClientProtocolException, IOException {
- HttpGet httpGet = new HttpGet(deploymentUrl + "/servlet");
- HttpResponse httpResponse = new DefaultHttpClient().execute(httpGet);
+ public void producedSuccessfully() throws ClientProtocolException, IOException {
+ HttpGet httpGet = new HttpGet(deploymentUrl + "/helper");
+ HttpResponse httpResponse = HttpClientBuilder.create().build().execute(httpGet);
int status = httpResponse.getStatusLine().getStatusCode();
- assertEquals(HttpStatus.SC_OK, status);
+ assertEquals(SC_OK, status);
}
}
diff --git a/impl/extension/servlet/src/test/java/producer/request/RequestServlet.java b/impl/extension/servlet/src/test/java/producer/request/RequestServlet.java
deleted file mode 100644
index 1a27258..0000000
--- a/impl/extension/servlet/src/test/java/producer/request/RequestServlet.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package producer.request;
-
-import java.io.IOException;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.http.HttpStatus;
-
-import br.gov.frameworkdemoiselle.util.Beans;
-
-public class RequestServlet extends HttpServlet {
-
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-
- HttpServletRequest httpRequest = Beans.getReference(HttpServletRequest.class);
-
- if (httpRequest != null) {
- response.setStatus(HttpStatus.SC_OK);
- } else {
- response.setStatus(HttpStatus.SC_INTERNAL_SERVER_ERROR);
- }
- }
-
-}
diff --git a/impl/extension/servlet/src/test/java/producer/response/HelperServlet.java b/impl/extension/servlet/src/test/java/producer/response/HelperServlet.java
new file mode 100644
index 0000000..8bf03e6
--- /dev/null
+++ b/impl/extension/servlet/src/test/java/producer/response/HelperServlet.java
@@ -0,0 +1,30 @@
+package producer.response;
+
+import static org.apache.http.HttpStatus.SC_INTERNAL_SERVER_ERROR;
+import static org.apache.http.HttpStatus.SC_OK;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import br.gov.frameworkdemoiselle.util.Beans;
+
+public class HelperServlet extends HttpServlet {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+
+ HttpServletResponse httpResponse = Beans.getReference(HttpServletResponse.class);
+
+ if (httpResponse != null) {
+ response.setStatus(SC_OK);
+ } else {
+ response.setStatus(SC_INTERNAL_SERVER_ERROR);
+ }
+ }
+}
diff --git a/impl/extension/servlet/src/test/java/producer/response/HttpServletResponseProducerTest.java b/impl/extension/servlet/src/test/java/producer/response/HttpServletResponseProducerTest.java
index 90f7037..37f4049 100644
--- a/impl/extension/servlet/src/test/java/producer/response/HttpServletResponseProducerTest.java
+++ b/impl/extension/servlet/src/test/java/producer/response/HttpServletResponseProducerTest.java
@@ -1,15 +1,15 @@
package producer.response;
import static junit.framework.Assert.assertEquals;
+import static org.apache.http.HttpStatus.SC_OK;
import java.io.IOException;
import java.net.URL;
import org.apache.http.HttpResponse;
-import org.apache.http.HttpStatus;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
-import org.apache.http.impl.client.DefaultHttpClient;
+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;
@@ -17,7 +17,7 @@ import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Test;
import org.junit.runner.RunWith;
-import producer.request.RequestServlet;
+import producer.request.HelperServlet;
import test.Tests;
@RunWith(Arquillian.class)
@@ -30,17 +30,16 @@ public class HttpServletResponseProducerTest {
@Deployment(testable = false)
public static WebArchive createDeployment() {
- return Tests.createDeployment().addClass(RequestServlet.class)
+ return Tests.createDeployment().addClass(HelperServlet.class)
.addAsWebInfResource(Tests.createFileAsset(PATH + "/web.xml"), "web.xml");
}
@Test
- public void createResponse() throws ClientProtocolException, IOException {
- HttpGet httpGet = new HttpGet(deploymentUrl + "/servlet");
- HttpResponse httpResponse = new DefaultHttpClient().execute(httpGet);
+ public void producedSuccessfully() throws ClientProtocolException, IOException {
+ HttpGet httpGet = new HttpGet(deploymentUrl + "/helper");
+ HttpResponse httpResponse = HttpClientBuilder.create().build().execute(httpGet);
int status = httpResponse.getStatusLine().getStatusCode();
- assertEquals(HttpStatus.SC_OK, status);
+ assertEquals(SC_OK, status);
}
-
}
diff --git a/impl/extension/servlet/src/test/java/producer/response/ResponseServlet.java b/impl/extension/servlet/src/test/java/producer/response/ResponseServlet.java
deleted file mode 100644
index 144cf02..0000000
--- a/impl/extension/servlet/src/test/java/producer/response/ResponseServlet.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package producer.response;
-
-import java.io.IOException;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.http.HttpStatus;
-
-import br.gov.frameworkdemoiselle.util.Beans;
-
-public class ResponseServlet extends HttpServlet {
-
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-
- HttpServletResponse httpResponse = Beans.getReference(HttpServletResponse.class);
-
- if (httpResponse != null) {
- response.setStatus(HttpStatus.SC_OK);
- } else {
- response.setStatus(HttpStatus.SC_INTERNAL_SERVER_ERROR);
- }
- }
-
-}
diff --git a/impl/extension/servlet/src/test/java/security/SecurityServlet.java b/impl/extension/servlet/src/test/java/security/SecurityServlet.java
index 38381aa..f2b7a66 100644
--- a/impl/extension/servlet/src/test/java/security/SecurityServlet.java
+++ b/impl/extension/servlet/src/test/java/security/SecurityServlet.java
@@ -1,5 +1,8 @@
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;
@@ -8,8 +11,6 @@ import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.http.HttpStatus;
-
import br.gov.frameworkdemoiselle.security.AuthenticationException;
import br.gov.frameworkdemoiselle.security.Credentials;
import br.gov.frameworkdemoiselle.security.SecurityContext;
@@ -31,12 +32,10 @@ public class SecurityServlet extends HttpServlet {
try {
Beans.getReference(SecurityContext.class).login();
- response.setStatus(HttpStatus.SC_OK);
+ response.setStatus(SC_OK);
+
} catch (AuthenticationException e) {
- response.setStatus(HttpStatus.SC_UNAUTHORIZED);
+ 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
index 3bdbd81..4b71ed2 100644
--- a/impl/extension/servlet/src/test/java/security/SecurityTest.java
+++ b/impl/extension/servlet/src/test/java/security/SecurityTest.java
@@ -57,6 +57,6 @@ public class SecurityTest {
HttpResponse response = client.execute(get);
int status = response.getStatusLine().getStatusCode();
- assertEquals(HttpStatus.SC_UNAUTHORIZED, status);
+ assertEquals(HttpStatus.SC_FORBIDDEN, status);
}
}
diff --git a/impl/extension/servlet/src/test/java/security/authentication/basic/BasicAuthenticationFilterTest.java b/impl/extension/servlet/src/test/java/security/authentication/basic/BasicAuthenticationFilterTest.java
index 455b009..e7cec30 100644
--- a/impl/extension/servlet/src/test/java/security/authentication/basic/BasicAuthenticationFilterTest.java
+++ b/impl/extension/servlet/src/test/java/security/authentication/basic/BasicAuthenticationFilterTest.java
@@ -1,7 +1,22 @@
package security.authentication.basic;
+import static org.apache.http.HttpStatus.SC_OK;
+import static org.apache.http.HttpStatus.SC_FORBIDDEN;
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
import java.net.URL;
+import org.apache.commons.codec.binary.Base64;
+import org.apache.http.HttpResponse;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.test.api.ArquillianResource;
@@ -26,10 +41,40 @@ public class BasicAuthenticationFilterTest {
}
@Test
- public void loginSucessfull() {
+ public void loginSucessfull() throws ClientProtocolException, IOException {
+ CredentialsProvider credsProvider = new BasicCredentialsProvider();
+ credsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("demoiselle", "changeit"));
+ CloseableHttpClient httpClient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
+
+ String username = "demoiselle";
+ String password = "changeit";
+
+ HttpGet httpGet = new HttpGet(deploymentUrl + "/helper");
+ byte[] encoded = Base64.encodeBase64((username + ":" + password).getBytes());
+ httpGet.setHeader("Authorization", "Basic " + new String(encoded));
+
+ HttpResponse httpResponse = httpClient.execute(httpGet);
+
+ int status = httpResponse.getStatusLine().getStatusCode();
+ assertEquals(SC_OK, status);
}
@Test
- public void loginfailed() {
+ public void loginFailed() throws ClientProtocolException, IOException {
+ CredentialsProvider credsProvider = new BasicCredentialsProvider();
+ credsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("demoiselle", "changeit"));
+ CloseableHttpClient httpClient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
+
+ String username = "invalid";
+ String password = "changeit";
+
+ HttpGet httpGet = new HttpGet(deploymentUrl + "/helper");
+ byte[] encoded = Base64.encodeBase64((username + ":" + password).getBytes());
+ httpGet.setHeader("Authorization", "Basic " + new String(encoded));
+
+ HttpResponse httpResponse = httpClient.execute(httpGet);
+
+ int status = httpResponse.getStatusLine().getStatusCode();
+ assertEquals(SC_FORBIDDEN, status);
}
}
diff --git a/impl/extension/servlet/src/test/java/security/authentication/basic/HelperServlet.java b/impl/extension/servlet/src/test/java/security/authentication/basic/HelperServlet.java
new file mode 100644
index 0000000..8e1456e
--- /dev/null
+++ b/impl/extension/servlet/src/test/java/security/authentication/basic/HelperServlet.java
@@ -0,0 +1,30 @@
+package security.authentication.basic;
+
+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.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import br.gov.frameworkdemoiselle.security.SecurityContext;
+import br.gov.frameworkdemoiselle.util.Beans;
+
+public class HelperServlet extends HttpServlet {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ boolean loggedIn = Beans.getReference(SecurityContext.class).isLoggedIn();
+
+ if (loggedIn) {
+ response.setStatus(SC_OK);
+ } else {
+ response.setStatus(SC_FORBIDDEN);
+ }
+ }
+}
diff --git a/impl/extension/servlet/src/test/resources/producer/request/web.xml b/impl/extension/servlet/src/test/resources/producer/request/web.xml
index 6fc9357..a2e035c 100644
--- a/impl/extension/servlet/src/test/resources/producer/request/web.xml
+++ b/impl/extension/servlet/src/test/resources/producer/request/web.xml
@@ -51,12 +51,12 @@
- Request Class
- producer.request.RequestServlet
+ Helper Servlet
+ producer.request.HelperServlet
- Request Class
- /servlet
+ Helper Servlet
+ /helper
\ No newline at end of file
diff --git a/impl/extension/servlet/src/test/resources/producer/response/web.xml b/impl/extension/servlet/src/test/resources/producer/response/web.xml
index 9aa4e47..ab17f6b 100644
--- a/impl/extension/servlet/src/test/resources/producer/response/web.xml
+++ b/impl/extension/servlet/src/test/resources/producer/response/web.xml
@@ -51,12 +51,12 @@
- Response Servlet
- producer.response.ResponseServlet
+ Helper Servlet
+ producer.response.HelperServlet
- Response Servlet
- /servlet
+ Helper Servlet
+ /helper
\ No newline at end of file
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 947e223..1abea33 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
@@ -51,19 +51,19 @@
- Security Class
- security.SecurityServlet
+ Helper Servlet
+ security.authentication.basic.HelperServlet
- Security Class
- /login
-
-
+ Helper Servlet
+ /helper
+
+