Commit 7f7dc517c5e2ecfbc149573cf446affd6b2379e6

Authored by Cleverson Sacramento
1 parent cc27007b
Exists in master

Organização do fonte.

archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/proxy/auth.js
@@ -17,7 +17,7 @@ var AuthProxy = { @@ -17,7 +17,7 @@ var AuthProxy = {
17 url : this.url, 17 url : this.url,
18 type : "GET", 18 type : "GET",
19 beforeSend : function(request) { 19 beforeSend : function(request) {
20 - request.setRequestHeader("Authorization", App.getToken()); 20 + App.setHeader(request)
21 } 21 }
22 }); 22 });
23 } 23 }
archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/proxy/bookmark.js
@@ -7,7 +7,7 @@ var BookmarkProxy = { @@ -7,7 +7,7 @@ var BookmarkProxy = {
7 type : "GET", 7 type : "GET",
8 url : this.url, 8 url : this.url,
9 beforeSend : function(request) { 9 beforeSend : function(request) {
10 - request.setRequestHeader("Authorization", App.getToken()); 10 + App.setHeader(request)
11 } 11 }
12 }); 12 });
13 }, 13 },
@@ -17,7 +17,7 @@ var BookmarkProxy = { @@ -17,7 +17,7 @@ var BookmarkProxy = {
17 type : "GET", 17 type : "GET",
18 url : this.url + "/" + $id, 18 url : this.url + "/" + $id,
19 beforeSend : function(request) { 19 beforeSend : function(request) {
20 - request.setRequestHeader("Authorization", App.getToken()); 20 + App.setHeader(request)
21 } 21 }
22 }); 22 });
23 }, 23 },
@@ -29,7 +29,7 @@ var BookmarkProxy = { @@ -29,7 +29,7 @@ var BookmarkProxy = {
29 data : JSON.stringify($data), 29 data : JSON.stringify($data),
30 contentType : "application/json", 30 contentType : "application/json",
31 beforeSend : function(request) { 31 beforeSend : function(request) {
32 - request.setRequestHeader("Authorization", App.getToken()); 32 + App.setHeader(request)
33 } 33 }
34 }); 34 });
35 }, 35 },
@@ -41,7 +41,7 @@ var BookmarkProxy = { @@ -41,7 +41,7 @@ var BookmarkProxy = {
41 data : JSON.stringify($data), 41 data : JSON.stringify($data),
42 contentType : "application/json", 42 contentType : "application/json",
43 beforeSend : function(request) { 43 beforeSend : function(request) {
44 - request.setRequestHeader("Authorization", App.getToken()); 44 + App.setHeader(request)
45 } 45 }
46 }); 46 });
47 }, 47 },
@@ -53,7 +53,7 @@ var BookmarkProxy = { @@ -53,7 +53,7 @@ var BookmarkProxy = {
53 data : JSON.stringify($ids), 53 data : JSON.stringify($ids),
54 contentType : "application/json", 54 contentType : "application/json",
55 beforeSend : function(request) { 55 beforeSend : function(request) {
56 - request.setRequestHeader("Authorization", App.getToken()); 56 + App.setHeader(request)
57 } 57 }
58 }); 58 });
59 } 59 }
impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ParseExceptionMapper.java
1 -package br.gov.frameworkdemoiselle.internal.implementation;  
2 -  
3 -import java.util.Arrays;  
4 -import java.util.HashSet;  
5 -import java.util.ResourceBundle;  
6 -import java.util.Set;  
7 -  
8 -import javax.ws.rs.core.Response;  
9 -import javax.ws.rs.ext.ExceptionMapper;  
10 -import javax.ws.rs.ext.Provider;  
11 -  
12 -import org.slf4j.Logger;  
13 -  
14 -import br.gov.frameworkdemoiselle.util.Beans;  
15 -import br.gov.frameworkdemoiselle.util.NameQualifier;  
16 -  
17 -@Provider  
18 -public class ParseExceptionMapper implements ExceptionMapper<Throwable> {  
19 -  
20 - private transient ResourceBundle bundle;  
21 -  
22 - private transient Logger logger;  
23 -  
24 - private Set<Class<?>> getTypes(Class<?> target) {  
25 - Set<Class<?>> classesInterfaces = new HashSet<Class<?>>();  
26 - classesInterfaces.add(target);  
27 - classesInterfaces.addAll(Arrays.asList(target.getInterfaces()));  
28 -  
29 - Class<?> superClass = target.getSuperclass();  
30 -  
31 - if (superClass != null) {  
32 - classesInterfaces.add(superClass);  
33 - classesInterfaces.addAll(getTypes(superClass));  
34 - }  
35 -  
36 - return classesInterfaces;  
37 - }  
38 -  
39 - @Override  
40 - public Response toResponse(Throwable exception) {  
41 -  
42 - // Throwable original = exception;  
43 - //  
44 - // while (exception != null) {  
45 - // System.out.println("xxxxxxxxxxxxxxxxxxxxxx : " + exception.getClass().getCanonicalName());  
46 - //  
47 - // exception = exception.getCause();  
48 - // }  
49 - //  
50 - // exception = original;  
51 - //  
52 - // Class<>  
53 - //  
54 - // while (exception != null) {  
55 - // System.out.println("xxxxxxxxxxxxxxxxxxxxxx : " + exception.getClass().getIgetCanonicalName());  
56 - //  
57 - // exception.getClass().getSuperclass();  
58 - //  
59 - // exception = exception.getP;  
60 - // }  
61 -  
62 - for (Class<?> type : getTypes(exception.getClass())) {  
63 -  
64 - System.out.println("___________________ " + type.getCanonicalName());  
65 -  
66 - if (type.getCanonicalName().toLowerCase().indexOf("unrecognized") > -1) {  
67 - getLogger().error("XXXXXXXXXXXXXX", exception);  
68 - return Response.status(400).build();  
69 - }  
70 - }  
71 -  
72 - // System.out.println("xxxxxxxxxxxxxx : " + getTypes(exception.getClass()));  
73 -  
74 - // if (exception.getMessage().toLowerCase().indexOf("unrecognized") > -1) {  
75 - // getLogger().error("XXXXXXXXXXXXXX", exception);  
76 - // return Response.status(400).build();  
77 - // }  
78 - //  
79 - throw new RuntimeException(exception);  
80 -  
81 - // return null;  
82 - }  
83 -  
84 - private ResourceBundle getBundle() {  
85 - if (bundle == null) {  
86 - bundle = Beans.getReference(ResourceBundle.class, new NameQualifier("demoiselle-rest-bundle"));  
87 - }  
88 -  
89 - return bundle;  
90 - }  
91 -  
92 - private Logger getLogger() {  
93 - if (logger == null) {  
94 - logger = Beans.getReference(Logger.class, new NameQualifier(ParseExceptionMapper.class.getName()));  
95 - }  
96 -  
97 - return logger;  
98 - }  
99 -} 1 +//package br.gov.frameworkdemoiselle.internal.implementation;
  2 +//
  3 +//import java.util.Arrays;
  4 +//import java.util.HashSet;
  5 +//import java.util.ResourceBundle;
  6 +//import java.util.Set;
  7 +//
  8 +//import javax.ws.rs.core.Response;
  9 +//import javax.ws.rs.ext.ExceptionMapper;
  10 +//import javax.ws.rs.ext.Provider;
  11 +//
  12 +//import org.slf4j.Logger;
  13 +//
  14 +//import br.gov.frameworkdemoiselle.util.Beans;
  15 +//import br.gov.frameworkdemoiselle.util.NameQualifier;
  16 +//
  17 +//@Provider
  18 +//public class ParseExceptionMapper implements ExceptionMapper<Throwable> {
  19 +//
  20 +// private transient ResourceBundle bundle;
  21 +//
  22 +// private transient Logger logger;
  23 +//
  24 +// private Set<Class<?>> getTypes(Class<?> target) {
  25 +// Set<Class<?>> classesInterfaces = new HashSet<Class<?>>();
  26 +// classesInterfaces.add(target);
  27 +// classesInterfaces.addAll(Arrays.asList(target.getInterfaces()));
  28 +//
  29 +// Class<?> superClass = target.getSuperclass();
  30 +//
  31 +// if (superClass != null) {
  32 +// classesInterfaces.add(superClass);
  33 +// classesInterfaces.addAll(getTypes(superClass));
  34 +// }
  35 +//
  36 +// return classesInterfaces;
  37 +// }
  38 +//
  39 +// @Override
  40 +// public Response toResponse(Throwable exception) {
  41 +//
  42 +// // Throwable original = exception;
  43 +// //
  44 +// // while (exception != null) {
  45 +// // System.out.println("xxxxxxxxxxxxxxxxxxxxxx : " + exception.getClass().getCanonicalName());
  46 +// //
  47 +// // exception = exception.getCause();
  48 +// // }
  49 +// //
  50 +// // exception = original;
  51 +// //
  52 +// // Class<>
  53 +// //
  54 +// // while (exception != null) {
  55 +// // System.out.println("xxxxxxxxxxxxxxxxxxxxxx : " + exception.getClass().getIgetCanonicalName());
  56 +// //
  57 +// // exception.getClass().getSuperclass();
  58 +// //
  59 +// // exception = exception.getP;
  60 +// // }
  61 +//
  62 +// for (Class<?> type : getTypes(exception.getClass())) {
  63 +//
  64 +// System.out.println("___________________ " + type.getCanonicalName());
  65 +//
  66 +// if (type.getCanonicalName().toLowerCase().indexOf("unrecognized") > -1) {
  67 +// getLogger().error("XXXXXXXXXXXXXX", exception);
  68 +// return Response.status(400).build();
  69 +// }
  70 +// }
  71 +//
  72 +// exception.printStackTrace();
  73 +//
  74 +// return null;
  75 +// }
  76 +//
  77 +// private ResourceBundle getBundle() {
  78 +// if (bundle == null) {
  79 +// bundle = Beans.getReference(ResourceBundle.class, new NameQualifier("demoiselle-rest-bundle"));
  80 +// }
  81 +//
  82 +// return bundle;
  83 +// }
  84 +//
  85 +// private Logger getLogger() {
  86 +// if (logger == null) {
  87 +// logger = Beans.getReference(Logger.class, new NameQualifier(ParseExceptionMapper.class.getName()));
  88 +// }
  89 +//
  90 +// return logger;
  91 +// }
  92 +//}
impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/security/AbstractHTTPAuthorizationFilter.java
@@ -75,34 +75,6 @@ public abstract class AbstractHTTPAuthorizationFilter implements Filter { @@ -75,34 +75,6 @@ public abstract class AbstractHTTPAuthorizationFilter implements Filter {
75 } else { 75 } else {
76 chain.doFilter(request, response); 76 chain.doFilter(request, response);
77 } 77 }
78 -  
79 - // boolean processed = false;  
80 - //  
81 - // if (request instanceof HttpServletRequest) {  
82 - // HttpServletRequest httpRequest = (HttpServletRequest) request;  
83 - // HttpServletResponse httpResponse = (HttpServletResponse) response;  
84 - //  
85 - // String authHeader = getAuthHeader(httpRequest);  
86 - // String httpCredentials = extractCredentials(authHeader);  
87 - //  
88 - // RESTSecurityConfig config = Beans.getReference(RESTSecurityConfig.class);  
89 - // if (isActive(config) && isSupported(httpCredentials)) {  
90 - // processed = true;  
91 - //  
92 - // try {  
93 - // performLogin(httpCredentials, httpRequest, httpResponse);  
94 - // chain.doFilter(httpRequest, httpResponse);  
95 - // performLogout(httpCredentials, httpRequest, httpResponse);  
96 - //  
97 - // } catch (InvalidCredentialsException cause) {  
98 - // setUnauthorizedStatus(httpResponse, cause);  
99 - // }  
100 - // }  
101 - // }  
102 - //  
103 - // if (!processed) {  
104 - // chain.doFilter(request, response);  
105 - // }  
106 } 78 }
107 79
108 protected void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) 80 protected void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
@@ -176,7 +148,7 @@ public abstract class AbstractHTTPAuthorizationFilter implements Filter { @@ -176,7 +148,7 @@ public abstract class AbstractHTTPAuthorizationFilter implements Filter {
176 148
177 private void setUnauthorizedStatus(HttpServletResponse response, AuthenticationException cause) throws IOException { 149 private void setUnauthorizedStatus(HttpServletResponse response, AuthenticationException cause) throws IOException {
178 response.setStatus(SC_UNAUTHORIZED); 150 response.setStatus(SC_UNAUTHORIZED);
179 - response.setContentType("text/plain"); 151 + response.setContentType("text/plain; charset=UTF-8");
180 response.getWriter().write(cause.getMessage()); 152 response.getWriter().write(cause.getMessage());
181 } 153 }
182 } 154 }
impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/security/BasicAuthFilter.java
@@ -45,39 +45,38 @@ import br.gov.frameworkdemoiselle.util.Beans; @@ -45,39 +45,38 @@ import br.gov.frameworkdemoiselle.util.Beans;
45 45
46 public class BasicAuthFilter extends AbstractHTTPAuthorizationFilter { 46 public class BasicAuthFilter extends AbstractHTTPAuthorizationFilter {
47 47
48 - private String credentials;  
49 -  
50 @Override 48 @Override
51 protected String getType() { 49 protected String getType() {
52 return "Basic"; 50 return "Basic";
53 } 51 }
54 52
55 @Override 53 @Override
56 - protected boolean isActive() {  
57 - return Beans.getReference(RESTSecurityConfig.class).isBasicFilterActive();  
58 - }  
59 -  
60 - @Override  
61 - protected void performLogin(HttpServletRequest httpRequest, HttpServletResponse httpResponse) {  
62 - String[] basicCredentials = getCredentials(credentials); 54 + protected void performLogin(HttpServletRequest request, HttpServletResponse response) {
  55 + String[] decoded = decodeCredentials(request);
63 56
64 Credentials credentials = Beans.getReference(Credentials.class); 57 Credentials credentials = Beans.getReference(Credentials.class);
65 - credentials.setUsername(basicCredentials[0]);  
66 - credentials.setPassword(basicCredentials[1]); 58 + credentials.setUsername(decoded[0]);
  59 + credentials.setPassword(decoded[1]);
67 60
68 - super.performLogin(httpRequest, httpResponse); 61 + super.performLogin(request, response);
69 } 62 }
70 63
71 - private static String[] getCredentials(String header) throws InvalidCredentialsException { 64 + private String[] decodeCredentials(HttpServletRequest request) throws InvalidCredentialsException {
72 String[] result = null; 65 String[] result = null;
73 66
74 - byte[] decoded = Base64.decodeBase64(header); 67 + String authData = getAuthData(request);
  68 + byte[] decoded = Base64.decodeBase64(authData);
75 result = new String(decoded).split(":"); 69 result = new String(decoded).split(":");
76 70
77 if (result == null || result.length != 2) { 71 if (result == null || result.length != 2) {
78 - throw new InvalidCredentialsException("Formato inválido do cabeçalho"); 72 + throw new InvalidCredentialsException("formato inválido do cabeçalho");
79 } 73 }
80 74
81 return result; 75 return result;
82 } 76 }
  77 +
  78 + @Override
  79 + protected boolean isActive() {
  80 + return Beans.getReference(RESTSecurityConfig.class).isBasicFilterActive();
  81 + }
83 } 82 }
impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/security/TokenAuthFilter.java
@@ -66,11 +66,6 @@ public class TokenAuthFilter extends AbstractHTTPAuthorizationFilter { @@ -66,11 +66,6 @@ public class TokenAuthFilter extends AbstractHTTPAuthorizationFilter {
66 } 66 }
67 67
68 @Override 68 @Override
69 - protected boolean isActive() {  
70 - return Beans.getReference(RESTSecurityConfig.class).isTokenFilterActive();  
71 - }  
72 -  
73 - @Override  
74 protected void performLogin(HttpServletRequest request, HttpServletResponse response) { 69 protected void performLogin(HttpServletRequest request, HttpServletResponse response) {
75 Token token = Beans.getReference(Token.class); 70 Token token = Beans.getReference(Token.class);
76 String authData = getAuthData(request); 71 String authData = getAuthData(request);
@@ -79,12 +74,9 @@ public class TokenAuthFilter extends AbstractHTTPAuthorizationFilter { @@ -79,12 +74,9 @@ public class TokenAuthFilter extends AbstractHTTPAuthorizationFilter {
79 super.performLogin(request, response); 74 super.performLogin(request, response);
80 } 75 }
81 76
82 - // public void setHeader(@Observes AfterLoginSuccessful event) {  
83 - // Token token = Beans.getReference(Token.class);  
84 - //  
85 - // if (!token.isEmpty()) {  
86 - // HttpServletResponse response = Beans.getReference(HttpServletResponse.class);  
87 - // response.setHeader("Set-Token", token.getValue());  
88 - // }  
89 - // } 77 + @Override
  78 + protected boolean isActive() {
  79 + return Beans.getReference(RESTSecurityConfig.class).isTokenFilterActive();
  80 + }
  81 +
90 } 82 }
impl/extension/servlet/src/main/resources/demoiselle-servlet-bundle.properties
@@ -33,5 +33,5 @@ @@ -33,5 +33,5 @@
33 # ou escreva para a Fundação do Software Livre (FSF) Inc., 33 # ou escreva para a Fundação do Software Livre (FSF) Inc.,
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.  
37 -authentication-failed=Falha no processo de autentica\u00E7\u00E3o. 36 +has-permission-not-supported=N\u00e3o \u00e9 poss\u00edvel utilizar @{0}, pois esta funcionalidade n\u00e3o \u00e9 suportada pelo JAAS.
  37 +authentication-failed=Falha no processo de autentica\u00E7\u00E3o