Prepare for release 2.1.17
[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 java.io.IOException;
23 import java.security.Principal;
24 import java.util.List;
25 import javax.servlet.Filter;
26 import javax.servlet.FilterChain;
27 import javax.servlet.FilterConfig;
28 import javax.servlet.ServletException;
29 import javax.servlet.ServletRequest;
30 import javax.servlet.ServletResponse;
31 import javax.servlet.http.HttpServletRequest;
32
33 import org.onap.aaf.cadi.Access;
34 import org.onap.aaf.cadi.CadiWrap;
35 import org.onap.aaf.cadi.Lur;
36 import org.onap.aaf.cadi.Permission;
37 import org.onap.aaf.cadi.aaf.AAFPermission;
38 import org.onap.aaf.cadi.principal.TaggedPrincipal;
39 import org.onap.aaf.cadi.taf.TafResp;
40
41 public class ReverseProxyMockCadiFilter implements Filter {
42
43         private FakeLur fakeLur = new FakeLur();
44
45         static class FakeLur implements Lur {
46
47                 @Override
48                 public void fishAll(Principal bait, List<Permission> permissions) {
49
50                         final String WildcardPermissionType = "test.wildcard.access";
51                         final String MultiplePermissionType = "test.multiple.access";
52                         final String TestAuthAccessPermissionType = "test.auth.access";
53                         final String PermissionAction = "permission";
54
55                         String principalName = bait.getName();
56
57                         if (principalName != null && principalName.equals("UserWithInstanceActionWildcardPermissionGranted")) {
58                                 permissions.add(new AAFPermission(null, WildcardPermissionType, "*", "*"));
59                         } else if (principalName != null && principalName.equals("UserWithInstanceWildcardPermissionGranted")) {
60                                 permissions.add(new AAFPermission(null, WildcardPermissionType, "*", PermissionAction));
61                         } else if (principalName != null && principalName.equals("UserWithActionWildcardPermissionGranted")) {
62                                 permissions.add(new AAFPermission(null, WildcardPermissionType, "first", "*"));
63                         } else {
64
65                                 // For single permission test
66                                 permissions.add(new AAFPermission(null, "test.single.access", "single", PermissionAction));
67
68                                 // For multiple permission test
69                                 permissions.add(new AAFPermission(null, MultiplePermissionType, "first", PermissionAction));
70                                 permissions.add(new AAFPermission(null, MultiplePermissionType, "second", PermissionAction));
71                                 permissions.add(new AAFPermission(null, MultiplePermissionType, "third", PermissionAction));
72
73                                 // For transaction id test
74                                 permissions.add(new AAFPermission(null, TestAuthAccessPermissionType, "rest", "write"));
75                                 permissions.add(new AAFPermission(null, TestAuthAccessPermissionType, "rpc", "write"));
76                         }
77                 }
78
79                 @Override
80                 public Permission createPerm(String p) {
81                         return null;
82                 }
83
84                 @Override
85                 public boolean fish(Principal bait, Permission... pond) {
86                         return false;
87                 }
88
89                 @Override
90                 public void destroy() {
91                         // Mock implementation
92                 }
93
94                 @Override
95                 public boolean handlesExclusively(Permission... pond) {
96                         return false;
97                 }
98
99                 @Override
100                 public boolean handles(Principal principal) {
101                         return false;
102                 }
103
104                 @Override
105                 public void clear(Principal p, StringBuilder report) {
106                         // Mock implementation
107                 }
108
109         }
110
111         @Override
112         public void destroy() {
113                 // Mock implementation
114         }
115
116         @Override
117         public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
118                         throws IOException, ServletException {
119
120                 TafResp tafResponseMock = new TafResp() {
121
122                         @Override
123                         public void timing(long arg0) {
124                                 // Mock implementation
125                         }
126
127                         @Override
128                         public float timing() {
129                                 return 0;
130                         }
131
132                         @Override
133                         public String taf() {
134                                 return null;
135                         }
136
137                         @Override
138                         public boolean isValid() {
139                                 return false;
140                         }
141
142                         @Override
143                         public boolean isFailedAttempt() {
144                                 return false;
145                         }
146
147                         @Override
148                         public RESP isAuthenticated() {
149                                 return null;
150                         }
151
152                         @Override
153                         public TaggedPrincipal getPrincipal() {
154                                 return new TaggedPrincipal() {
155
156                                         @Override
157                                         public String getName() {
158                                                 return ((HttpServletRequest) servletRequest).getHeader("PermissionsUser");
159                                         }
160
161                                         @Override
162                                         public String tag() {
163                                                 return null;
164                                         }
165                                 };
166                         }
167
168                         @Override
169                         public Access getAccess() {
170                                 return null;
171                         }
172
173                         @Override
174                         public String desc() {
175                                 return null;
176                         }
177
178                         @Override
179                         public String getTarget() {
180                                 return null;
181                         }
182
183                         @Override
184                         public RESP authenticate() throws IOException {
185                                 return null;
186                         }
187                 };
188
189                 CadiWrap cadiWrap = new CadiWrap((HttpServletRequest) servletRequest, tafResponseMock, fakeLur);
190                 filterChain.doFilter(cadiWrap, servletResponse);
191         }
192
193         @Override
194         public void init(FilterConfig arg0) throws ServletException {
195                 // Mock implementation
196         }
197
198 }