2 * ============LICENSE_START=======================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
20 package org.onap.aaf.cadi.sidecar.rproxy.mocks;
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;
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;
41 public class ReverseProxyMockCadiFilter implements Filter {
43 private FakeLur fakeLur = new FakeLur();
45 static class FakeLur implements Lur {
48 public void fishAll(Principal bait, List<Permission> permissions) {
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";
55 String principalName = bait.getName();
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", "*"));
65 // For single permission test
66 permissions.add(new AAFPermission(null, "test.single.access", "single", PermissionAction));
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));
73 // For transaction id test
74 permissions.add(new AAFPermission(null, TestAuthAccessPermissionType, "rest", "write"));
75 permissions.add(new AAFPermission(null, TestAuthAccessPermissionType, "rpc", "write"));
80 public Permission createPerm(String p) {
85 public boolean fish(Principal bait, Permission... pond) {
90 public void destroy() {
91 // Mock implementation
95 public boolean handlesExclusively(Permission... pond) {
100 public boolean handles(Principal principal) {
105 public void clear(Principal p, StringBuilder report) {
106 // Mock implementation
112 public void destroy() {
113 // Mock implementation
117 public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
118 throws IOException, ServletException {
120 TafResp tafResponseMock = new TafResp() {
123 public void timing(long arg0) {
124 // Mock implementation
128 public float timing() {
133 public String taf() {
138 public boolean isValid() {
143 public boolean isFailedAttempt() {
148 public RESP isAuthenticated() {
153 public TaggedPrincipal getPrincipal() {
154 return new TaggedPrincipal() {
157 public String getName() {
158 return ((HttpServletRequest) servletRequest).getHeader("PermissionsUser");
162 public String tag() {
169 public Access getAccess() {
174 public String desc() {
179 public String getTarget() {
184 public RESP authenticate() throws IOException {
189 CadiWrap cadiWrap = new CadiWrap((HttpServletRequest) servletRequest, tafResponseMock, fakeLur);
190 filterChain.doFilter(cadiWrap, servletResponse);
194 public void init(FilterConfig arg0) throws ServletException {
195 // Mock implementation