Commit 3a6e094fe2cc0c1993e6afc0462fa7bca2c6ccac

Authored by Cleverson Sacramento
1 parent bff29051
Exists in master

Experimentos com o LoginModule

impl/extension/jaas/src/main/java/br/gov/frameworkdemoiselle/security/JAASAuthenticator.java
@@ -39,6 +39,7 @@ package br.gov.frameworkdemoiselle.security; @@ -39,6 +39,7 @@ package br.gov.frameworkdemoiselle.security;
39 import static br.gov.frameworkdemoiselle.internal.implementation.StrategySelector.EXTENSIONS_L1_PRIORITY; 39 import static br.gov.frameworkdemoiselle.internal.implementation.StrategySelector.EXTENSIONS_L1_PRIORITY;
40 40
41 import java.io.IOException; 41 import java.io.IOException;
  42 +import java.security.SecurityPermission;
42 43
43 import javax.enterprise.context.SessionScoped; 44 import javax.enterprise.context.SessionScoped;
44 import javax.enterprise.inject.Produces; 45 import javax.enterprise.inject.Produces;
@@ -91,7 +92,7 @@ public class JAASAuthenticator implements Authenticator { @@ -91,7 +92,7 @@ public class JAASAuthenticator implements Authenticator {
91 92
92 try { 93 try {
93 LoginContext loginContext = createLoginContext(); 94 LoginContext loginContext = createLoginContext();
94 - 95 +
95 if (loginContext != null) { 96 if (loginContext != null) {
96 loginContext.login(); 97 loginContext.login();
97 98
@@ -136,6 +137,29 @@ public class JAASAuthenticator implements Authenticator { @@ -136,6 +137,29 @@ public class JAASAuthenticator implements Authenticator {
136 137
137 @Override 138 @Override
138 public User getUser() { 139 public User getUser() {
  140 + try {
  141 +
  142 +// LoginContext
  143 +
  144 +// AbstractSecurityContext.
  145 +
  146 + Object securityContext = System.getSecurityManager().getSecurityContext();
  147 +
  148 + System.out.println(securityContext.toString());
  149 +
  150 + String name = config.getLoginModuleName();
  151 + LoginContext loginContext = new LoginContext(name, this.subject);
  152 + loginContext.login();
  153 +
  154 + Subject subject2 = loginContext.getSubject();
  155 +
  156 + System.out.println(subject2.toString());
  157 +
  158 + } catch (LoginException e) {
  159 + // TODO Auto-generated catch block
  160 + e.printStackTrace();
  161 + }
  162 +
139 return this.user; 163 return this.user;
140 } 164 }
141 165
impl/extension/servlet/src/main/java/br/gov/frameworkdemoiselle/util/ServletFilter.java
@@ -38,6 +38,7 @@ package br.gov.frameworkdemoiselle.util; @@ -38,6 +38,7 @@ package br.gov.frameworkdemoiselle.util;
38 38
39 import java.io.IOException; 39 import java.io.IOException;
40 40
  41 +import javax.security.auth.login.LoginContext;
41 import javax.servlet.Filter; 42 import javax.servlet.Filter;
42 import javax.servlet.FilterChain; 43 import javax.servlet.FilterChain;
43 import javax.servlet.FilterConfig; 44 import javax.servlet.FilterConfig;
@@ -46,6 +47,7 @@ import javax.servlet.ServletRequest; @@ -46,6 +47,7 @@ import javax.servlet.ServletRequest;
46 import javax.servlet.ServletResponse; 47 import javax.servlet.ServletResponse;
47 import javax.servlet.http.HttpServletRequest; 48 import javax.servlet.http.HttpServletRequest;
48 import javax.servlet.http.HttpServletResponse; 49 import javax.servlet.http.HttpServletResponse;
  50 +import javax.servlet.http.HttpSession;
49 51
50 import br.gov.frameworkdemoiselle.internal.producer.HttpServletRequestProducer; 52 import br.gov.frameworkdemoiselle.internal.producer.HttpServletRequestProducer;
51 import br.gov.frameworkdemoiselle.internal.producer.HttpServletResponseProducer; 53 import br.gov.frameworkdemoiselle.internal.producer.HttpServletResponseProducer;
@@ -63,6 +65,16 @@ public class ServletFilter implements Filter { @@ -63,6 +65,16 @@ public class ServletFilter implements Filter {
63 Beans.getReference(HttpServletRequestProducer.class).setDelegate((HttpServletRequest) request); 65 Beans.getReference(HttpServletRequestProducer.class).setDelegate((HttpServletRequest) request);
64 Beans.getReference(HttpServletResponseProducer.class).setDelegate((HttpServletResponse) response); 66 Beans.getReference(HttpServletResponseProducer.class).setDelegate((HttpServletResponse) response);
65 67
  68 + //((HttpServletRequest) request).;
  69 +
  70 + LoginContext ctx = null;
  71 + HttpSession sess = (HttpSession) ((HttpServletRequest) request).getSession(false);
  72 + if (sess != null) {
  73 + ctx = (LoginContext) sess.getAttribute("ctx");
  74 + }
  75 +
  76 + System.out.println(ctx);
  77 +
66 chain.doFilter(request, response); 78 chain.doFilter(request, response);
67 } 79 }
68 80