diff --git a/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/cl/filter/SessionFilter.java b/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/cl/filter/SessionFilter.java index 3ce7897..369cef8 100644 --- a/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/cl/filter/SessionFilter.java +++ b/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/cl/filter/SessionFilter.java @@ -14,7 +14,7 @@ import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; -import javax.servlet.ServletContext; +//import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; @@ -42,21 +42,25 @@ */ @WebFilter(filterName = "session-filter", urlPatterns = { "/*" }) public class SessionFilter implements Filter { + + @javax.annotation.Resource(mappedName ="java:global/client_secret") private String clientId; + @javax.annotation.Resource(mappedName ="java:global/client_id") private String clientSecret; + @javax.annotation.Resource(mappedName ="java:global/userField") private String userField; - @Inject - private ServletContext context; +// @Inject +// private ServletContext context; @Inject private SecurityController sc; @Override public void init(FilterConfig fliterConfig) throws ServletException { - this.clientSecret = context.getInitParameter("client_secret"); - this.clientId = context.getInitParameter("client_id"); - this.userField = context.getInitParameter("userField"); +// this.clientSecret = context.getInitParameter("client_secret"); +// this.clientId = context.getInitParameter("client_id"); +// this.userField = context.getInitParameter("userField"); } @Override @@ -116,6 +120,18 @@ public void doFilter(ServletRequest req, ServletResponse res, FilterChain fc) } +// HttpSession session = ((HttpServletRequest) req).getSession(); +// +// User user = sc.getUser("Jeremy_Easton-Marks@hms.harvard.edu"); +// Token token = new JWT(((HttpServletRequest) req).getHeader("Authorization"), "", "Bearer", this.clientId); +// SecureSession secureSession = new SecureSession(); +// secureSession.setToken(token); +// secureSession.setUser(user); +// +// session.setAttribute("user", user); +// session.setAttribute("token", token); +// session.setAttribute("secureSession", secureSession); + fc.doFilter(req, res); } diff --git a/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/cl/rest/SecurityService.java b/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/cl/rest/SecurityService.java index 898043e..11f9cef 100644 --- a/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/cl/rest/SecurityService.java +++ b/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/cl/rest/SecurityService.java @@ -7,14 +7,12 @@ import java.io.Serializable; import java.net.URI; -import javax.annotation.PostConstruct; import javax.enterprise.context.SessionScoped; import javax.faces.bean.ManagedBean; import javax.inject.Inject; import javax.json.Json; import javax.json.JsonObjectBuilder; import javax.json.JsonStructure; -import javax.servlet.ServletContext; import javax.servlet.http.HttpSession; import javax.ws.rs.GET; import javax.ws.rs.Path; @@ -57,18 +55,23 @@ public class SecurityService implements Serializable { @Inject private SecurityController sc; - @Inject - private ServletContext context; @Inject private HttpSession session; private final NonceGenerator nonceGenerator = new NonceGenerator(); private String state; + + @javax.annotation.Resource(mappedName ="java:global/redirect_on_success") private String redirectOnSuccess; - private String tokenUri; - private String userInfoUri; + + @javax.annotation.Resource(mappedName ="java:global/domain") + private String domain; + + @javax.annotation.Resource(mappedName ="java:global/client_id") private String clientId; + + @javax.annotation.Resource(mappedName ="java:global/client_secret") private String clientSecret; private User user; private Token token; @@ -81,21 +84,6 @@ public SecurityService() { } - /** - * Following construction retrieves parameters from web.xml - */ - @PostConstruct - public void init() { - this.tokenUri = "https://" + context.getInitParameter("domain") - + "/oauth/token"; - this.userInfoUri = String.format("https://%s%s", - context.getInitParameter("domain"), "/userinfo"); - this.clientId = context.getInitParameter("client_id"); - this.clientSecret = context.getInitParameter("client_secret"); - this.redirectOnSuccess = context - .getInitParameter("redirect_on_success"); - } - /** * Creates a state and keeps it associated with the users http session * @@ -192,7 +180,8 @@ private Token fetchToken(String authorizationCode) throws JSONException, json.put("grant_type", "authorization_code"); json.put("code", authorizationCode); - JSONObject tokenInfo = resty.json(tokenUri, content(json)).toObject(); + JSONObject tokenInfo = resty.json(String.format("https://%s%s", + domain, "/userinfo"), content(json)).toObject(); return new JWT((String) tokenInfo.get("id_token"), (String) tokenInfo.get("access_token"), @@ -203,8 +192,8 @@ private User fetchUser(String accessToken) throws IOException, JSONException { Resty resty = new Resty(); - JSONObject userInfo = resty.json( - this.userInfoUri + "?access_token=" + accessToken).toObject(); + JSONObject userInfo = resty.json(String.format("https://%s%s", + domain, "/userinfo?access_token=") + accessToken).toObject(); String userEmail = userInfo.getString("email"); diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index 9c61f61..5b5472a 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -6,12 +6,4 @@ 120 - - - - redirect_on_success - /IRCT-UI/token.html - - - \ No newline at end of file