Fix/Renable sidecar builds
[aaf/cadi.git] / sidecar / rproxy / src / main / java / org / onap / aaf / cadi / sidecar / rproxy / mocks / ReverseProxyMockCadiFilter.java
1 /**
2  * ============LICENSE_START=======================================================
3  * org.onap.aaf
4  * ================================================================================
5  * Copyright © 2018 European Software Marketing Ltd.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *       http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20 package org.onap.aaf.cadi.sidecar.rproxy.mocks;
21
22 import static org.mockito.Mockito.mock;
23 import static org.mockito.Mockito.when;
24
25 import java.io.IOException;
26 import java.security.Principal;
27 import java.util.List;
28 import javax.servlet.Filter;
29 import javax.servlet.FilterChain;
30 import javax.servlet.FilterConfig;
31 import javax.servlet.ServletException;
32 import javax.servlet.ServletRequest;
33 import javax.servlet.ServletResponse;
34 import javax.servlet.http.HttpServletRequest;
35 import org.onap.aaf.cadi.CadiWrap;
36 import org.onap.aaf.cadi.Lur;
37 import org.onap.aaf.cadi.Permission;
38 import org.onap.aaf.cadi.aaf.AAFPermission;
39 import org.onap.aaf.cadi.principal.TaggedPrincipal;
40 import org.onap.aaf.cadi.taf.TafResp;
41
42 public class ReverseProxyMockCadiFilter implements Filter {
43
44     private FakeLur fakeLur = new FakeLur();
45
46     static class FakeLur implements Lur {
47
48                 @Override
49                 public void fishAll(Principal bait, List<Permission> permissions) {
50                         
51                         final String WildcardPermissionType = "test.wildcard.access";
52                         final String MultiplePermissionType = "test.multiple.access";
53                         final String TestAuthAccessPermissionType = "test.auth.access";
54                         final String PermissionAction = "permission";
55
56                         String principalName = bait.getName();
57
58                         if (principalName != null && principalName.equals("UserWithInstanceActionWildcardPermissionGranted")) {
59                                 permissions.add(new AAFPermission(null, WildcardPermissionType, "*", "*"));
60                         } 
61                         else 
62                         if (principalName != null && principalName.equals("UserWithInstanceWildcardPermissionGranted")) {
63                                 permissions.add(new AAFPermission(null, WildcardPermissionType, "*", PermissionAction));
64                         } 
65                         else 
66                         if (principalName != null && principalName.equals("UserWithActionWildcardPermissionGranted")) {
67                                         permissions.add(new AAFPermission(null, WildcardPermissionType, "first", "*"));
68                                 }
69                         else {
70
71                                 // For single permission test
72                                 permissions.add(new AAFPermission(null, "test.single.access", "single", PermissionAction));
73
74                                 // For multiple permission test
75                                 permissions.add(new AAFPermission(null, MultiplePermissionType, "first", PermissionAction));
76                                 permissions.add(new AAFPermission(null, MultiplePermissionType, "second", PermissionAction));
77                                 permissions.add(new AAFPermission(null, MultiplePermissionType, "third", PermissionAction));
78
79                                 // For transaction id test
80                                 permissions.add(new AAFPermission(null, TestAuthAccessPermissionType, "rest", "write"));
81                                 permissions.add(new AAFPermission(null, TestAuthAccessPermissionType, "rpc", "write"));
82                         }
83                 }
84
85         @Override
86         public Permission createPerm(String p) {
87             return null;
88         }
89
90         @Override
91         public boolean fish(Principal bait, Permission... pond) {
92             return false;
93         }
94
95         @Override
96         public void destroy() {
97             // Mock implementation
98         }
99
100         @Override
101         public boolean handlesExclusively(Permission... pond) {
102             return false;
103         }
104
105         @Override
106         public boolean handles(Principal principal) {
107             return false;
108         }
109
110         @Override
111         public void clear(Principal p, StringBuilder report) {
112             // Mock implementation
113         }
114
115     }
116
117     @Override
118     public void destroy() {
119         // Mock implementation
120     }
121
122     @Override
123     public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
124             throws IOException, ServletException {
125         
126         String userName = ((HttpServletRequest)servletRequest).getHeader("PermissionsUser");
127
128         TaggedPrincipal mockTaggedPrincipal = mock(TaggedPrincipal.class);
129         when(mockTaggedPrincipal.getName()).thenReturn(userName);
130
131         TafResp tafResponseMock = mock(TafResp.class);
132         when(tafResponseMock.getPrincipal()).thenReturn(mockTaggedPrincipal);
133
134         CadiWrap cadiWrap = new CadiWrap((HttpServletRequest) servletRequest, tafResponseMock, fakeLur);
135         filterChain.doFilter(cadiWrap, servletResponse);
136     }
137
138     @Override
139     public void init(FilterConfig arg0) throws ServletException {
140         // Mock implementation
141     }
142
143 }