From 7f7dc517c5e2ecfbc149573cf446affd6b2379e6 Mon Sep 17 00:00:00 2001 From: Cleverson Sacramento Date: Mon, 20 Oct 2014 12:32:06 -0200 Subject: [PATCH] Organização do fonte. --- archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/proxy/auth.js | 2 +- archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/proxy/bookmark.js | 10 +++++----- impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ParseExceptionMapper.java | 191 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------------------------- impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/security/AbstractHTTPAuthorizationFilter.java | 30 +----------------------------- impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/security/BasicAuthFilter.java | 29 ++++++++++++++--------------- impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/security/TokenAuthFilter.java | 18 +++++------------- impl/extension/servlet/src/main/resources/demoiselle-servlet-bundle.properties | 4 ++-- 7 files changed, 120 insertions(+), 164 deletions(-) diff --git a/archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/proxy/auth.js b/archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/proxy/auth.js index 0cafe38..8fe0cb5 100644 --- a/archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/proxy/auth.js +++ b/archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/proxy/auth.js @@ -17,7 +17,7 @@ var AuthProxy = { url : this.url, type : "GET", beforeSend : function(request) { - request.setRequestHeader("Authorization", App.getToken()); + App.setHeader(request) } }); } diff --git a/archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/proxy/bookmark.js b/archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/proxy/bookmark.js index cd8c921..aaa621e 100644 --- a/archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/proxy/bookmark.js +++ b/archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/proxy/bookmark.js @@ -7,7 +7,7 @@ var BookmarkProxy = { type : "GET", url : this.url, beforeSend : function(request) { - request.setRequestHeader("Authorization", App.getToken()); + App.setHeader(request) } }); }, @@ -17,7 +17,7 @@ var BookmarkProxy = { type : "GET", url : this.url + "/" + $id, beforeSend : function(request) { - request.setRequestHeader("Authorization", App.getToken()); + App.setHeader(request) } }); }, @@ -29,7 +29,7 @@ var BookmarkProxy = { data : JSON.stringify($data), contentType : "application/json", beforeSend : function(request) { - request.setRequestHeader("Authorization", App.getToken()); + App.setHeader(request) } }); }, @@ -41,7 +41,7 @@ var BookmarkProxy = { data : JSON.stringify($data), contentType : "application/json", beforeSend : function(request) { - request.setRequestHeader("Authorization", App.getToken()); + App.setHeader(request) } }); }, @@ -53,7 +53,7 @@ var BookmarkProxy = { data : JSON.stringify($ids), contentType : "application/json", beforeSend : function(request) { - request.setRequestHeader("Authorization", App.getToken()); + App.setHeader(request) } }); } diff --git a/impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ParseExceptionMapper.java b/impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ParseExceptionMapper.java index a655dd7..ed6ff08 100644 --- a/impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ParseExceptionMapper.java +++ b/impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ParseExceptionMapper.java @@ -1,99 +1,92 @@ -package br.gov.frameworkdemoiselle.internal.implementation; - -import java.util.Arrays; -import java.util.HashSet; -import java.util.ResourceBundle; -import java.util.Set; - -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; - -import org.slf4j.Logger; - -import br.gov.frameworkdemoiselle.util.Beans; -import br.gov.frameworkdemoiselle.util.NameQualifier; - -@Provider -public class ParseExceptionMapper implements ExceptionMapper { - - private transient ResourceBundle bundle; - - private transient Logger logger; - - private Set> getTypes(Class target) { - Set> classesInterfaces = new HashSet>(); - classesInterfaces.add(target); - classesInterfaces.addAll(Arrays.asList(target.getInterfaces())); - - Class superClass = target.getSuperclass(); - - if (superClass != null) { - classesInterfaces.add(superClass); - classesInterfaces.addAll(getTypes(superClass)); - } - - return classesInterfaces; - } - - @Override - public Response toResponse(Throwable exception) { - - // Throwable original = exception; - // - // while (exception != null) { - // System.out.println("xxxxxxxxxxxxxxxxxxxxxx : " + exception.getClass().getCanonicalName()); - // - // exception = exception.getCause(); - // } - // - // exception = original; - // - // Class<> - // - // while (exception != null) { - // System.out.println("xxxxxxxxxxxxxxxxxxxxxx : " + exception.getClass().getIgetCanonicalName()); - // - // exception.getClass().getSuperclass(); - // - // exception = exception.getP; - // } - - for (Class type : getTypes(exception.getClass())) { - - System.out.println("___________________ " + type.getCanonicalName()); - - if (type.getCanonicalName().toLowerCase().indexOf("unrecognized") > -1) { - getLogger().error("XXXXXXXXXXXXXX", exception); - return Response.status(400).build(); - } - } - - // System.out.println("xxxxxxxxxxxxxx : " + getTypes(exception.getClass())); - - // if (exception.getMessage().toLowerCase().indexOf("unrecognized") > -1) { - // getLogger().error("XXXXXXXXXXXXXX", exception); - // return Response.status(400).build(); - // } - // - throw new RuntimeException(exception); - - // return null; - } - - private ResourceBundle getBundle() { - if (bundle == null) { - bundle = Beans.getReference(ResourceBundle.class, new NameQualifier("demoiselle-rest-bundle")); - } - - return bundle; - } - - private Logger getLogger() { - if (logger == null) { - logger = Beans.getReference(Logger.class, new NameQualifier(ParseExceptionMapper.class.getName())); - } - - return logger; - } -} +//package br.gov.frameworkdemoiselle.internal.implementation; +// +//import java.util.Arrays; +//import java.util.HashSet; +//import java.util.ResourceBundle; +//import java.util.Set; +// +//import javax.ws.rs.core.Response; +//import javax.ws.rs.ext.ExceptionMapper; +//import javax.ws.rs.ext.Provider; +// +//import org.slf4j.Logger; +// +//import br.gov.frameworkdemoiselle.util.Beans; +//import br.gov.frameworkdemoiselle.util.NameQualifier; +// +//@Provider +//public class ParseExceptionMapper implements ExceptionMapper { +// +// private transient ResourceBundle bundle; +// +// private transient Logger logger; +// +// private Set> getTypes(Class target) { +// Set> classesInterfaces = new HashSet>(); +// classesInterfaces.add(target); +// classesInterfaces.addAll(Arrays.asList(target.getInterfaces())); +// +// Class superClass = target.getSuperclass(); +// +// if (superClass != null) { +// classesInterfaces.add(superClass); +// classesInterfaces.addAll(getTypes(superClass)); +// } +// +// return classesInterfaces; +// } +// +// @Override +// public Response toResponse(Throwable exception) { +// +// // Throwable original = exception; +// // +// // while (exception != null) { +// // System.out.println("xxxxxxxxxxxxxxxxxxxxxx : " + exception.getClass().getCanonicalName()); +// // +// // exception = exception.getCause(); +// // } +// // +// // exception = original; +// // +// // Class<> +// // +// // while (exception != null) { +// // System.out.println("xxxxxxxxxxxxxxxxxxxxxx : " + exception.getClass().getIgetCanonicalName()); +// // +// // exception.getClass().getSuperclass(); +// // +// // exception = exception.getP; +// // } +// +// for (Class type : getTypes(exception.getClass())) { +// +// System.out.println("___________________ " + type.getCanonicalName()); +// +// if (type.getCanonicalName().toLowerCase().indexOf("unrecognized") > -1) { +// getLogger().error("XXXXXXXXXXXXXX", exception); +// return Response.status(400).build(); +// } +// } +// +// exception.printStackTrace(); +// +// return null; +// } +// +// private ResourceBundle getBundle() { +// if (bundle == null) { +// bundle = Beans.getReference(ResourceBundle.class, new NameQualifier("demoiselle-rest-bundle")); +// } +// +// return bundle; +// } +// +// private Logger getLogger() { +// if (logger == null) { +// logger = Beans.getReference(Logger.class, new NameQualifier(ParseExceptionMapper.class.getName())); +// } +// +// return logger; +// } +//} diff --git a/impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/security/AbstractHTTPAuthorizationFilter.java b/impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/security/AbstractHTTPAuthorizationFilter.java index aad9265..ddbc23b 100644 --- a/impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/security/AbstractHTTPAuthorizationFilter.java +++ b/impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/security/AbstractHTTPAuthorizationFilter.java @@ -75,34 +75,6 @@ public abstract class AbstractHTTPAuthorizationFilter implements Filter { } else { chain.doFilter(request, response); } - - // boolean processed = false; - // - // if (request instanceof HttpServletRequest) { - // HttpServletRequest httpRequest = (HttpServletRequest) request; - // HttpServletResponse httpResponse = (HttpServletResponse) response; - // - // String authHeader = getAuthHeader(httpRequest); - // String httpCredentials = extractCredentials(authHeader); - // - // RESTSecurityConfig config = Beans.getReference(RESTSecurityConfig.class); - // if (isActive(config) && isSupported(httpCredentials)) { - // processed = true; - // - // try { - // performLogin(httpCredentials, httpRequest, httpResponse); - // chain.doFilter(httpRequest, httpResponse); - // performLogout(httpCredentials, httpRequest, httpResponse); - // - // } catch (InvalidCredentialsException cause) { - // setUnauthorizedStatus(httpResponse, cause); - // } - // } - // } - // - // if (!processed) { - // chain.doFilter(request, response); - // } } protected void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) @@ -176,7 +148,7 @@ public abstract class AbstractHTTPAuthorizationFilter implements Filter { private void setUnauthorizedStatus(HttpServletResponse response, AuthenticationException cause) throws IOException { response.setStatus(SC_UNAUTHORIZED); - response.setContentType("text/plain"); + response.setContentType("text/plain; charset=UTF-8"); response.getWriter().write(cause.getMessage()); } } diff --git a/impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/security/BasicAuthFilter.java b/impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/security/BasicAuthFilter.java index 08c860b..52760b0 100644 --- a/impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/security/BasicAuthFilter.java +++ b/impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/security/BasicAuthFilter.java @@ -45,39 +45,38 @@ import br.gov.frameworkdemoiselle.util.Beans; public class BasicAuthFilter extends AbstractHTTPAuthorizationFilter { - private String credentials; - @Override protected String getType() { return "Basic"; } @Override - protected boolean isActive() { - return Beans.getReference(RESTSecurityConfig.class).isBasicFilterActive(); - } - - @Override - protected void performLogin(HttpServletRequest httpRequest, HttpServletResponse httpResponse) { - String[] basicCredentials = getCredentials(credentials); + protected void performLogin(HttpServletRequest request, HttpServletResponse response) { + String[] decoded = decodeCredentials(request); Credentials credentials = Beans.getReference(Credentials.class); - credentials.setUsername(basicCredentials[0]); - credentials.setPassword(basicCredentials[1]); + credentials.setUsername(decoded[0]); + credentials.setPassword(decoded[1]); - super.performLogin(httpRequest, httpResponse); + super.performLogin(request, response); } - private static String[] getCredentials(String header) throws InvalidCredentialsException { + private String[] decodeCredentials(HttpServletRequest request) throws InvalidCredentialsException { String[] result = null; - byte[] decoded = Base64.decodeBase64(header); + String authData = getAuthData(request); + byte[] decoded = Base64.decodeBase64(authData); result = new String(decoded).split(":"); if (result == null || result.length != 2) { - throw new InvalidCredentialsException("Formato inválido do cabeçalho"); + throw new InvalidCredentialsException("formato inválido do cabeçalho"); } return result; } + + @Override + protected boolean isActive() { + return Beans.getReference(RESTSecurityConfig.class).isBasicFilterActive(); + } } diff --git a/impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/security/TokenAuthFilter.java b/impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/security/TokenAuthFilter.java index 9809bb7..fcd3839 100644 --- a/impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/security/TokenAuthFilter.java +++ b/impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/security/TokenAuthFilter.java @@ -66,11 +66,6 @@ public class TokenAuthFilter extends AbstractHTTPAuthorizationFilter { } @Override - protected boolean isActive() { - return Beans.getReference(RESTSecurityConfig.class).isTokenFilterActive(); - } - - @Override protected void performLogin(HttpServletRequest request, HttpServletResponse response) { Token token = Beans.getReference(Token.class); String authData = getAuthData(request); @@ -79,12 +74,9 @@ public class TokenAuthFilter extends AbstractHTTPAuthorizationFilter { super.performLogin(request, response); } - // public void setHeader(@Observes AfterLoginSuccessful event) { - // Token token = Beans.getReference(Token.class); - // - // if (!token.isEmpty()) { - // HttpServletResponse response = Beans.getReference(HttpServletResponse.class); - // response.setHeader("Set-Token", token.getValue()); - // } - // } + @Override + protected boolean isActive() { + return Beans.getReference(RESTSecurityConfig.class).isTokenFilterActive(); + } + } 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..0f1376a 100644 --- a/impl/extension/servlet/src/main/resources/demoiselle-servlet-bundle.properties +++ b/impl/extension/servlet/src/main/resources/demoiselle-servlet-bundle.properties @@ -33,5 +33,5 @@ # ou escreva para a Fundação do Software Livre (FSF) Inc., # 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. -authentication-failed=Falha no processo de autentica\u00E7\u00E3o. +has-permission-not-supported=N\u00e3o \u00e9 poss\u00edvel utilizar @{0}, pois esta funcionalidade n\u00e3o \u00e9 suportada pelo JAAS. +authentication-failed=Falha no processo de autentica\u00E7\u00E3o -- libgit2 0.21.2