From 850cc214dd8d7d9bc6952abb19670da7467913ab Mon Sep 17 00:00:00 2001 From: Cleverson Sacramento Date: Thu, 26 Sep 2013 10:49:23 -0300 Subject: [PATCH] IN PROGRESS - issue FWK-119: Testes da extensão Servlet --- impl/extension/servlet/src/main/java/br/gov/frameworkdemoiselle/security/ServletAuthenticator.java | 11 +++++++---- impl/extension/servlet/src/main/resources/demoiselle-servlet-bundle.properties | 1 + impl/extension/servlet/src/test/java/security/authentication/form/HelperServlet.java | 23 ++--------------------- impl/extension/servlet/src/test/resources/security/authentication/form/web.xml | 3 ++- 4 files changed, 12 insertions(+), 26 deletions(-) diff --git a/impl/extension/servlet/src/main/java/br/gov/frameworkdemoiselle/security/ServletAuthenticator.java b/impl/extension/servlet/src/main/java/br/gov/frameworkdemoiselle/security/ServletAuthenticator.java index e48cc29..cd37da0 100644 --- a/impl/extension/servlet/src/main/java/br/gov/frameworkdemoiselle/security/ServletAuthenticator.java +++ b/impl/extension/servlet/src/main/java/br/gov/frameworkdemoiselle/security/ServletAuthenticator.java @@ -65,11 +65,14 @@ public class ServletAuthenticator implements Authenticator { @Override public void authenticate() throws AuthenticationException { try { - if (getRequest().getUserPrincipal() == null) { - getRequest().login(getCredentials().getUsername(), getCredentials().getPassword()); - } + getRequest().login(getCredentials().getUsername(), getCredentials().getPassword()); + } catch (ServletException cause) { - throw new AuthenticationException(getBundle().getString("authentication-failed"), cause); + if (cause.getMessage().contains("invalid")) { + throw new InvalidCredentialsException(getBundle().getString("invalid-credentials")); + } else { + throw new AuthenticationException(getBundle().getString("authentication-failed"), cause); + } } } diff --git a/impl/extension/servlet/src/main/resources/demoiselle-servlet-bundle.properties b/impl/extension/servlet/src/main/resources/demoiselle-servlet-bundle.properties index fb4f36f..59e36d6 100644 --- a/impl/extension/servlet/src/main/resources/demoiselle-servlet-bundle.properties +++ b/impl/extension/servlet/src/main/resources/demoiselle-servlet-bundle.properties @@ -34,4 +34,5 @@ # 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. has-permission-not-supported=N\u00E3o \u00E9 poss\u00EDvel utilizar @{0}, pois esta funcionalidade n\u00E3o \u00E9 suportada pelo JAAS. +invalid-credentials=Usu\u00E1rio ou senha inv\u00E1lidos. authentication-failed=Falha no processo de autentica\u00E7\u00E3o. 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 index 78cf981..fc5a5d6 100644 --- a/impl/extension/servlet/src/test/java/security/authentication/form/HelperServlet.java +++ b/impl/extension/servlet/src/test/java/security/authentication/form/HelperServlet.java @@ -2,13 +2,9 @@ package security.authentication.form; import static org.apache.http.HttpStatus.SC_EXPECTATION_FAILED; import static org.apache.http.HttpStatus.SC_FORBIDDEN; -import static org.apache.http.HttpStatus.SC_NOT_FOUND; import static org.apache.http.HttpStatus.SC_OK; import java.io.IOException; -import java.security.InvalidParameterException; -import java.util.regex.Matcher; -import java.util.regex.Pattern; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; @@ -26,14 +22,10 @@ public class HelperServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String action = getAction(request); - - if ("login".equals(action)) { + if (request.getRequestURI().endsWith("/login")) { login(request, response); - } else if ("logout".equals(action)) { - logout(request, response); } else { - response.setStatus(SC_NOT_FOUND); + logout(request, response); } } @@ -74,15 +66,4 @@ public class HelperServlet extends HttpServlet { credentials.setUsername(request.getParameter("username")); credentials.setPassword(request.getParameter("password")); } - - private String getAction(HttpServletRequest request) { - Pattern pattern = Pattern.compile("^.+/(.+)$"); - Matcher matcher = pattern.matcher(request.getRequestURI()); - - if (matcher.matches()) { - return matcher.group(1).toLowerCase(); - } else { - throw new InvalidParameterException("Está faltando o parâmetro de ação na URL"); - } - } } 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 index ac8afc4..a3a356a 100644 --- a/impl/extension/servlet/src/test/resources/security/authentication/form/web.xml +++ b/impl/extension/servlet/src/test/resources/security/authentication/form/web.xml @@ -56,6 +56,7 @@ Helper Servlet - /helper/* + /helper/login + /helper/logout \ No newline at end of file -- libgit2 0.21.2