| .. | .. |
|---|
| 18 | 18 | |
|---|
| 19 | 19 | import org.apache.logging.log4j.LogManager; |
|---|
| 20 | 20 | |
|---|
| 21 | | - |
|---|
| 22 | 21 | @Singleton |
|---|
| 23 | 22 | @WebFilter(urlPatterns = "/*") |
|---|
| 24 | 23 | public class AuthFilter implements Filter { |
|---|
| 25 | 24 | |
|---|
| 26 | | - private static final Logger LOG = LogManager.getLogger(AuthFilter.class); |
|---|
| 25 | + private static final Logger LOG = LogManager.getLogger(AuthFilter.class); |
|---|
| 27 | 26 | |
|---|
| 28 | | - @Override |
|---|
| 29 | | - public void init(FilterConfig fc) throws ServletException { |
|---|
| 30 | | - } |
|---|
| 27 | + @Override |
|---|
| 28 | + public void init(FilterConfig fc) throws ServletException {} |
|---|
| 31 | 29 | |
|---|
| 32 | | - @Override |
|---|
| 33 | | - public void doFilter(ServletRequest sr, ServletResponse sr1, FilterChain fc) throws IOException, ServletException { |
|---|
| 34 | | - HttpServletRequest req = (HttpServletRequest) sr; |
|---|
| 30 | + @Override |
|---|
| 31 | + public void doFilter(ServletRequest sr, ServletResponse sr1, FilterChain fc) throws IOException, ServletException { |
|---|
| 32 | + HttpServletRequest req = (HttpServletRequest) sr; |
|---|
| 35 | 33 | |
|---|
| 36 | | - // System.out.println("filter: " + req.getRequestURI() + " user: " + sr.getParameter("user")); |
|---|
| 37 | | - if (sr.getParameter("user") != null || req.getSession().getAttribute("user") != null) { |
|---|
| 38 | | - String username = sr.getParameter("user"); |
|---|
| 39 | | - if (username == null) |
|---|
| 40 | | - username = (String) req.getSession().getAttribute("user"); |
|---|
| 41 | | - String role = username.equals("advance") ? "advance" : "normal"; |
|---|
| 42 | | - // ResteasyProviderFactory.pushContext(User.class, new User(sr.getParameter("user"))); |
|---|
| 43 | | - LOG.info("Role for user: {} = {}", username, role); |
|---|
| 44 | | - fc.doFilter(new UserRoleRequestWrapper(role, sr.getParameter("user"), req), sr1); |
|---|
| 45 | | - } else { |
|---|
| 46 | | - fc.doFilter(req, sr1); |
|---|
| 47 | | - } |
|---|
| 34 | + if (sr.getParameter("user") != null || req.getSession().getAttribute("user") != null) { |
|---|
| 35 | + String username = sr.getParameter("user"); |
|---|
| 36 | + if (username == null) { |
|---|
| 37 | + username = (String) req.getSession().getAttribute("user"); |
|---|
| 38 | + } |
|---|
| 39 | + // TODO: role management is temporal |
|---|
| 40 | + String role = "advance".equals(username) ? "advance" : "normal"; |
|---|
| 41 | + LOG.info("Role for user: {} = {}", username, role); |
|---|
| 42 | + fc.doFilter(new UserRoleRequestWrapper(role, sr.getParameter("user"), req), sr1); |
|---|
| 43 | + } else { |
|---|
| 44 | + fc.doFilter(req, sr1); |
|---|
| 45 | + } |
|---|
| 48 | 46 | |
|---|
| 49 | | - } |
|---|
| 47 | + } |
|---|
| 50 | 48 | |
|---|
| 51 | | - @Override |
|---|
| 52 | | - public void destroy() { |
|---|
| 53 | | - } |
|---|
| 49 | + @Override |
|---|
| 50 | + public void destroy() {} |
|---|
| 54 | 51 | |
|---|
| 55 | | - private class UserRoleRequestWrapper extends HttpServletRequestWrapper { |
|---|
| 52 | + private class UserRoleRequestWrapper extends HttpServletRequestWrapper { |
|---|
| 56 | 53 | |
|---|
| 57 | | - private String role; |
|---|
| 58 | | - private String user; |
|---|
| 54 | + private String role; |
|---|
| 55 | + private String user; |
|---|
| 59 | 56 | |
|---|
| 60 | | - public UserRoleRequestWrapper(String role, String user, HttpServletRequest request) { |
|---|
| 61 | | - super(request); |
|---|
| 62 | | - this.role = role; |
|---|
| 63 | | - this.user = user; |
|---|
| 64 | | - } |
|---|
| 57 | + public UserRoleRequestWrapper(String role, String user, HttpServletRequest request) { |
|---|
| 58 | + super(request); |
|---|
| 59 | + this.role = role; |
|---|
| 60 | + this.user = user; |
|---|
| 61 | + } |
|---|
| 65 | 62 | |
|---|
| 66 | | - @Override |
|---|
| 67 | | - public boolean isUserInRole(String role) { |
|---|
| 68 | | - LOG.info("isUserRole METHOD: {}, {}", role, this.role); |
|---|
| 69 | | - if (this.role == null) { |
|---|
| 70 | | - return super.isUserInRole(role); |
|---|
| 71 | | - } |
|---|
| 72 | | - return this.role.equals(role); |
|---|
| 73 | | - } |
|---|
| 63 | + @Override |
|---|
| 64 | + public boolean isUserInRole(String role) { |
|---|
| 65 | + LOG.info("isUserRole METHOD: {}, {}", role, this.role); |
|---|
| 66 | + if (this.role == null) { |
|---|
| 67 | + return super.isUserInRole(role); |
|---|
| 68 | + } |
|---|
| 69 | + return this.role.equals(role); |
|---|
| 70 | + } |
|---|
| 74 | 71 | |
|---|
| 75 | | - @Override |
|---|
| 76 | | - public Principal getUserPrincipal() { |
|---|
| 77 | | - if (this.user == null) { |
|---|
| 78 | | - return super.getUserPrincipal(); |
|---|
| 79 | | - } |
|---|
| 72 | + @Override |
|---|
| 73 | + public Principal getUserPrincipal() { |
|---|
| 74 | + if (this.user == null) { |
|---|
| 75 | + return super.getUserPrincipal(); |
|---|
| 76 | + } |
|---|
| 80 | 77 | |
|---|
| 81 | | - return new Principal() { |
|---|
| 82 | | - @Override |
|---|
| 83 | | - public String getName() { |
|---|
| 84 | | - return user; |
|---|
| 85 | | - } |
|---|
| 86 | | - }; |
|---|
| 87 | | - } |
|---|
| 88 | | - } |
|---|
| 78 | + return new Principal() { |
|---|
| 79 | + @Override |
|---|
| 80 | + public String getName() { |
|---|
| 81 | + return user; |
|---|
| 82 | + } |
|---|
| 83 | + }; |
|---|
| 84 | + } |
|---|
| 85 | + } |
|---|
| 89 | 86 | } |
|---|