AT&T 2.0.19 Code drop, stage 3
[aaf/authz.git] / auth / auth-gui / src / main / java / org / onap / aaf / auth / gui / OrgLookupFilter.java
1 package org.onap.aaf.auth.gui;
2
3 import java.io.IOException;
4 import java.security.Principal;
5
6 import javax.servlet.Filter;
7 import javax.servlet.FilterChain;
8 import javax.servlet.FilterConfig;
9 import javax.servlet.ServletException;
10 import javax.servlet.ServletRequest;
11 import javax.servlet.ServletResponse;
12 import javax.servlet.http.HttpServletRequest;
13
14 import org.onap.aaf.auth.env.AuthzTrans;
15 import org.onap.aaf.auth.org.OrganizationException;
16 import org.onap.aaf.auth.org.Organization.Identity;
17 import org.onap.aaf.auth.rserv.TransFilter;
18 import org.onap.aaf.cadi.CadiException;
19 import org.onap.aaf.cadi.principal.TaggedPrincipal;
20
21 public class OrgLookupFilter implements Filter {
22         
23         @Override
24         public void init(FilterConfig arg0) throws ServletException {
25         }
26
27         @Override
28         public void doFilter(ServletRequest req, ServletResponse resp, FilterChain fc) throws IOException, ServletException {
29                 final AuthzTrans trans = (AuthzTrans) req.getAttribute(TransFilter.TRANS_TAG);
30                 if(req instanceof HttpServletRequest) {
31                         Principal p = ((HttpServletRequest)req).getUserPrincipal();
32                         if(p instanceof TaggedPrincipal) {
33                                 ((TaggedPrincipal)p).setTagLookup(new TaggedPrincipal.TagLookup() {
34                                         @Override
35                                         public String lookup() throws CadiException {
36                                                 Identity id;
37                                                 try {
38                                                         id = trans.org().getIdentity(trans, p.getName());
39                                                         if(id.isFound()) {
40                                                                 return id.firstName();
41                                                         }
42                                                 } catch (OrganizationException e) {
43                                                         throw new CadiException(e);
44                                                 }
45                                                 return p.getName();
46                                         }
47                                 });
48                         }
49                         fc.doFilter(req, resp);
50                 }
51                 
52         }
53
54
55         @Override
56         public void destroy() {
57         }
58 }