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 static org.mockito.Mockito.mock;
23 import static org.mockito.Mockito.when;
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;
42 public class ReverseProxyMockCadiFilter implements Filter {
44 private FakeLur fakeLur = new FakeLur();
46 static class FakeLur implements Lur {
49 public void fishAll(Principal bait, List<Permission> permissions) {
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";
56 String principalName = bait.getName();
58 if (principalName != null && principalName.equals("UserWithInstanceActionWildcardPermissionGranted")) {
59 permissions.add(new AAFPermission(null, WildcardPermissionType, "*", "*"));
62 if (principalName != null && principalName.equals("UserWithInstanceWildcardPermissionGranted")) {
63 permissions.add(new AAFPermission(null, WildcardPermissionType, "*", PermissionAction));
66 if (principalName != null && principalName.equals("UserWithActionWildcardPermissionGranted")) {
67 permissions.add(new AAFPermission(null, WildcardPermissionType, "first", "*"));
71 // For single permission test
72 permissions.add(new AAFPermission(null, "test.single.access", "single", PermissionAction));
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));
79 // For transaction id test
80 permissions.add(new AAFPermission(null, TestAuthAccessPermissionType, "rest", "write"));
81 permissions.add(new AAFPermission(null, TestAuthAccessPermissionType, "rpc", "write"));
86 public Permission createPerm(String p) {
91 public boolean fish(Principal bait, Permission... pond) {
96 public void destroy() {
97 // Mock implementation
101 public boolean handlesExclusively(Permission... pond) {
106 public boolean handles(Principal principal) {
111 public void clear(Principal p, StringBuilder report) {
112 // Mock implementation
118 public void destroy() {
119 // Mock implementation
123 public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
124 throws IOException, ServletException {
126 String userName = ((HttpServletRequest)servletRequest).getHeader("PermissionsUser");
128 TaggedPrincipal mockTaggedPrincipal = mock(TaggedPrincipal.class);
129 when(mockTaggedPrincipal.getName()).thenReturn(userName);
131 TafResp tafResponseMock = mock(TafResp.class);
132 when(tafResponseMock.getPrincipal()).thenReturn(mockTaggedPrincipal);
134 CadiWrap cadiWrap = new CadiWrap((HttpServletRequest) servletRequest, tafResponseMock, fakeLur);
135 filterChain.doFilter(cadiWrap, servletResponse);
139 public void init(FilterConfig arg0) throws ServletException {
140 // Mock implementation