Commit 8fbfdea52598ae566beb0d67fa65515e4443ca06

Authored by Cleverson Sacramento
1 parent 735de5a4
Exists in master

FWK-213: Implementação padrão do TokenManager em @ApplicationScoped (não

recomendado em produção) 

Task-Url: https://demoiselle.atlassian.net/browse/FWK-213
archetype/html-rest/src/main/resources/archetype-resources/src/main/java/security/AppAuthenticator.java
@@ -2,45 +2,34 @@ package ${package}.security; @@ -2,45 +2,34 @@ package ${package}.security;
2 2
3 import java.security.Principal; 3 import java.security.Principal;
4 4
5 -import javax.enterprise.context.RequestScoped;  
6 -  
7 -import br.gov.frameworkdemoiselle.security.Authenticator;  
8 import br.gov.frameworkdemoiselle.security.Credentials; 5 import br.gov.frameworkdemoiselle.security.Credentials;
9 import br.gov.frameworkdemoiselle.security.InvalidCredentialsException; 6 import br.gov.frameworkdemoiselle.security.InvalidCredentialsException;
  7 +import br.gov.frameworkdemoiselle.security.TokenAuthenticator;
10 import br.gov.frameworkdemoiselle.util.Beans; 8 import br.gov.frameworkdemoiselle.util.Beans;
11 9
12 -@RequestScoped  
13 -public class AppAuthenticator implements Authenticator { 10 +public class AppAuthenticator extends TokenAuthenticator {
14 11
15 private static final long serialVersionUID = 1L; 12 private static final long serialVersionUID = 1L;
16 13
17 - private Principal user;  
18 -  
19 @Override 14 @Override
20 - public void authenticate() throws Exception { 15 + protected Principal customAuthentication() throws Exception {
  16 + Principal user = null;
21 final Credentials credentials = Beans.getReference(Credentials.class); 17 final Credentials credentials = Beans.getReference(Credentials.class);
  18 + final String username = credentials.getUsername();
22 19
23 if (credentials.getPassword().equals("secret")) { 20 if (credentials.getPassword().equals("secret")) {
24 - this.user = new Principal() { 21 + user = new Principal() {
25 22
26 @Override 23 @Override
27 public String getName() { 24 public String getName() {
28 - return credentials.getUsername(); 25 + return username;
29 } 26 }
30 }; 27 };
31 28
32 } else { 29 } else {
33 throw new InvalidCredentialsException(); 30 throw new InvalidCredentialsException();
34 } 31 }
35 - }  
36 32
37 - @Override  
38 - public void unauthenticate() throws Exception {  
39 - this.user = null;  
40 - }  
41 -  
42 - @Override  
43 - public Principal getUser() {  
44 - return this.user; 33 + return user;
45 } 34 }
46 } 35 }
archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/controller/login.js
@@ -19,18 +19,8 @@ $(function() { @@ -19,18 +19,8 @@ $(function() {
19 }); 19 });
20 }); 20 });
21 21
22 -function make_base_auth(user, password) {  
23 - var tok = user + ':' + password;  
24 - var hash = btoa(tok);  
25 - return hash;  
26 -}  
27 -  
28 -function loginOk(data) {  
29 - var username = $("#username").val().trim();  
30 - var password = $("#password").val().trim();  
31 - var encoded = btoa(username + ':' + password);  
32 -  
33 - App.setToken(encoded); 22 +function loginOk(data, status, request) {
  23 + App.setToken(request.getResponseHeader('Set-Token'));
34 location.href = "home.html"; 24 location.href = "home.html";
35 } 25 }
36 26
archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/lib/app.js
@@ -20,21 +20,22 @@ var App = { @@ -20,21 +20,22 @@ var App = {
20 }, 20 },
21 21
22 setToken : function(token) { 22 setToken : function(token) {
  23 + console.log(token);
23 sessionStorage.setItem(this.tokenKey, token); 24 sessionStorage.setItem(this.tokenKey, token);
24 }, 25 },
25 26
26 setHeader : function(request) { 27 setHeader : function(request) {
27 - request.setRequestHeader("Authorization", "Basic " + App.getToken()); 28 + request.setRequestHeader("Authorization", "Token " + App.getToken());
28 }, 29 },
29 30
30 removeToken : function() { 31 removeToken : function() {
31 sessionStorage.removeItem(this.tokenKey); 32 sessionStorage.removeItem(this.tokenKey);
  33 + $.removeCookie("Token");
32 }, 34 },
33 - 35 +
34 getUrlParameterByName : function(name) { 36 getUrlParameterByName : function(name) {
35 name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); 37 name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
36 - var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),  
37 - results = regex.exec(location.search);  
38 - return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); 38 + var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), results = regex.exec(location.search);
  39 + return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
39 } 40 }
40 }; 41 };
impl/extension/rest/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/DefaultTokenManager.java
@@ -66,7 +66,7 @@ public class DefaultTokenManager implements TokenManager { @@ -66,7 +66,7 @@ public class DefaultTokenManager implements TokenManager {
66 return store.get(token); 66 return store.get(token);
67 } 67 }
68 68
69 - private class TokenStore implements Serializable { 69 + public static class TokenStore implements Serializable {
70 70
71 private static final long serialVersionUID = 1L; 71 private static final long serialVersionUID = 1L;
72 72