Commit 8fbfdea52598ae566beb0d67fa65515e4443ca06
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
Showing
4 changed files
with
17 additions
and
37 deletions
Show diff stats
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 |