Commit 850cc214dd8d7d9bc6952abb19670da7467913ab

Authored by Cleverson Sacramento
1 parent f559466d
Exists in master

IN PROGRESS - issue FWK-119: Testes da extensão Servlet

https://demoiselle.atlassian.net/browse/FWK-119
impl/extension/servlet/src/main/java/br/gov/frameworkdemoiselle/security/ServletAuthenticator.java
@@ -65,11 +65,14 @@ public class ServletAuthenticator implements Authenticator { @@ -65,11 +65,14 @@ public class ServletAuthenticator implements Authenticator {
65 @Override 65 @Override
66 public void authenticate() throws AuthenticationException { 66 public void authenticate() throws AuthenticationException {
67 try { 67 try {
68 - if (getRequest().getUserPrincipal() == null) {  
69 - getRequest().login(getCredentials().getUsername(), getCredentials().getPassword());  
70 - } 68 + getRequest().login(getCredentials().getUsername(), getCredentials().getPassword());
  69 +
71 } catch (ServletException cause) { 70 } catch (ServletException cause) {
72 - throw new AuthenticationException(getBundle().getString("authentication-failed"), cause); 71 + if (cause.getMessage().contains("invalid")) {
  72 + throw new InvalidCredentialsException(getBundle().getString("invalid-credentials"));
  73 + } else {
  74 + throw new AuthenticationException(getBundle().getString("authentication-failed"), cause);
  75 + }
73 } 76 }
74 } 77 }
75 78
impl/extension/servlet/src/main/resources/demoiselle-servlet-bundle.properties
@@ -34,4 +34,5 @@ @@ -34,4 +34,5 @@
34 # 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. 34 # 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA.
35 35
36 has-permission-not-supported=N\u00E3o \u00E9 poss\u00EDvel utilizar @{0}, pois esta funcionalidade n\u00E3o \u00E9 suportada pelo JAAS. 36 has-permission-not-supported=N\u00E3o \u00E9 poss\u00EDvel utilizar @{0}, pois esta funcionalidade n\u00E3o \u00E9 suportada pelo JAAS.
  37 +invalid-credentials=Usu\u00E1rio ou senha inv\u00E1lidos.
37 authentication-failed=Falha no processo de autentica\u00E7\u00E3o. 38 authentication-failed=Falha no processo de autentica\u00E7\u00E3o.
impl/extension/servlet/src/test/java/security/authentication/form/HelperServlet.java
@@ -2,13 +2,9 @@ package security.authentication.form; @@ -2,13 +2,9 @@ package security.authentication.form;
2 2
3 import static org.apache.http.HttpStatus.SC_EXPECTATION_FAILED; 3 import static org.apache.http.HttpStatus.SC_EXPECTATION_FAILED;
4 import static org.apache.http.HttpStatus.SC_FORBIDDEN; 4 import static org.apache.http.HttpStatus.SC_FORBIDDEN;
5 -import static org.apache.http.HttpStatus.SC_NOT_FOUND;  
6 import static org.apache.http.HttpStatus.SC_OK; 5 import static org.apache.http.HttpStatus.SC_OK;
7 6
8 import java.io.IOException; 7 import java.io.IOException;
9 -import java.security.InvalidParameterException;  
10 -import java.util.regex.Matcher;  
11 -import java.util.regex.Pattern;  
12 8
13 import javax.servlet.ServletException; 9 import javax.servlet.ServletException;
14 import javax.servlet.http.HttpServlet; 10 import javax.servlet.http.HttpServlet;
@@ -26,14 +22,10 @@ public class HelperServlet extends HttpServlet { @@ -26,14 +22,10 @@ public class HelperServlet extends HttpServlet {
26 22
27 @Override 23 @Override
28 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 24 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
29 - String action = getAction(request);  
30 -  
31 - if ("login".equals(action)) { 25 + if (request.getRequestURI().endsWith("/login")) {
32 login(request, response); 26 login(request, response);
33 - } else if ("logout".equals(action)) {  
34 - logout(request, response);  
35 } else { 27 } else {
36 - response.setStatus(SC_NOT_FOUND); 28 + logout(request, response);
37 } 29 }
38 } 30 }
39 31
@@ -74,15 +66,4 @@ public class HelperServlet extends HttpServlet { @@ -74,15 +66,4 @@ public class HelperServlet extends HttpServlet {
74 credentials.setUsername(request.getParameter("username")); 66 credentials.setUsername(request.getParameter("username"));
75 credentials.setPassword(request.getParameter("password")); 67 credentials.setPassword(request.getParameter("password"));
76 } 68 }
77 -  
78 - private String getAction(HttpServletRequest request) {  
79 - Pattern pattern = Pattern.compile("^.+/(.+)$");  
80 - Matcher matcher = pattern.matcher(request.getRequestURI());  
81 -  
82 - if (matcher.matches()) {  
83 - return matcher.group(1).toLowerCase();  
84 - } else {  
85 - throw new InvalidParameterException("Está faltando o parâmetro de ação na URL");  
86 - }  
87 - }  
88 } 69 }
impl/extension/servlet/src/test/resources/security/authentication/form/web.xml
@@ -56,6 +56,7 @@ @@ -56,6 +56,7 @@
56 </servlet> 56 </servlet>
57 <servlet-mapping> 57 <servlet-mapping>
58 <servlet-name>Helper Servlet</servlet-name> 58 <servlet-name>Helper Servlet</servlet-name>
59 - <url-pattern>/helper/*</url-pattern> 59 + <url-pattern>/helper/login</url-pattern>
  60 + <url-pattern>/helper/logout</url-pattern>
60 </servlet-mapping> 61 </servlet-mapping>
61 </web-app> 62 </web-app>
62 \ No newline at end of file 63 \ No newline at end of file