aboutsummaryrefslogtreecommitdiffstats
path: root/sidecar/rproxy/src/main/java/org/onap/aaf/cadi/sidecar/rproxy/mocks/ReverseProxyMockCadiFilter.java
diff options
context:
space:
mode:
Diffstat (limited to 'sidecar/rproxy/src/main/java/org/onap/aaf/cadi/sidecar/rproxy/mocks/ReverseProxyMockCadiFilter.java')
-rw-r--r--sidecar/rproxy/src/main/java/org/onap/aaf/cadi/sidecar/rproxy/mocks/ReverseProxyMockCadiFilter.java143
1 files changed, 143 insertions, 0 deletions
diff --git a/sidecar/rproxy/src/main/java/org/onap/aaf/cadi/sidecar/rproxy/mocks/ReverseProxyMockCadiFilter.java b/sidecar/rproxy/src/main/java/org/onap/aaf/cadi/sidecar/rproxy/mocks/ReverseProxyMockCadiFilter.java
new file mode 100644
index 0000000..1c4de92
--- /dev/null
+++ b/sidecar/rproxy/src/main/java/org/onap/aaf/cadi/sidecar/rproxy/mocks/ReverseProxyMockCadiFilter.java
@@ -0,0 +1,143 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aaf
+ * ================================================================================
+ * Copyright © 2018 European Software Marketing Ltd.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.aaf.cadi.sidecar.rproxy.mocks;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.io.IOException;
+import java.security.Principal;
+import java.util.List;
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import org.onap.aaf.cadi.CadiWrap;
+import org.onap.aaf.cadi.Lur;
+import org.onap.aaf.cadi.Permission;
+import org.onap.aaf.cadi.aaf.AAFPermission;
+import org.onap.aaf.cadi.principal.TaggedPrincipal;
+import org.onap.aaf.cadi.taf.TafResp;
+
+public class ReverseProxyMockCadiFilter implements Filter {
+
+ private FakeLur fakeLur = new FakeLur();
+
+ static class FakeLur implements Lur {
+
+ @Override
+ public void fishAll(Principal bait, List<Permission> permissions) {
+
+ final String WildcardPermissionType = "test.wildcard.access";
+ final String MultiplePermissionType = "test.multiple.access";
+ final String TestAuthAccessPermissionType = "test.auth.access";
+ final String PermissionAction = "permission";
+
+ String principalName = bait.getName();
+
+ if (principalName != null && principalName.equals("UserWithInstanceActionWildcardPermissionGranted")) {
+ permissions.add(new AAFPermission(null, WildcardPermissionType, "*", "*"));
+ }
+ else
+ if (principalName != null && principalName.equals("UserWithInstanceWildcardPermissionGranted")) {
+ permissions.add(new AAFPermission(null, WildcardPermissionType, "*", PermissionAction));
+ }
+ else
+ if (principalName != null && principalName.equals("UserWithActionWildcardPermissionGranted")) {
+ permissions.add(new AAFPermission(null, WildcardPermissionType, "first", "*"));
+ }
+ else {
+
+ // For single permission test
+ permissions.add(new AAFPermission(null, "test.single.access", "single", PermissionAction));
+
+ // For multiple permission test
+ permissions.add(new AAFPermission(null, MultiplePermissionType, "first", PermissionAction));
+ permissions.add(new AAFPermission(null, MultiplePermissionType, "second", PermissionAction));
+ permissions.add(new AAFPermission(null, MultiplePermissionType, "third", PermissionAction));
+
+ // For transaction id test
+ permissions.add(new AAFPermission(null, TestAuthAccessPermissionType, "rest", "write"));
+ permissions.add(new AAFPermission(null, TestAuthAccessPermissionType, "rpc", "write"));
+ }
+ }
+
+ @Override
+ public Permission createPerm(String p) {
+ return null;
+ }
+
+ @Override
+ public boolean fish(Principal bait, Permission... pond) {
+ return false;
+ }
+
+ @Override
+ public void destroy() {
+ // Mock implementation
+ }
+
+ @Override
+ public boolean handlesExclusively(Permission... pond) {
+ return false;
+ }
+
+ @Override
+ public boolean handles(Principal principal) {
+ return false;
+ }
+
+ @Override
+ public void clear(Principal p, StringBuilder report) {
+ // Mock implementation
+ }
+
+ }
+
+ @Override
+ public void destroy() {
+ // Mock implementation
+ }
+
+ @Override
+ public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
+ throws IOException, ServletException {
+
+ String userName = ((HttpServletRequest)servletRequest).getHeader("PermissionsUser");
+
+ TaggedPrincipal mockTaggedPrincipal = mock(TaggedPrincipal.class);
+ when(mockTaggedPrincipal.getName()).thenReturn(userName);
+
+ TafResp tafResponseMock = mock(TafResp.class);
+ when(tafResponseMock.getPrincipal()).thenReturn(mockTaggedPrincipal);
+
+ CadiWrap cadiWrap = new CadiWrap((HttpServletRequest) servletRequest, tafResponseMock, fakeLur);
+ filterChain.doFilter(cadiWrap, servletResponse);
+ }
+
+ @Override
+ public void init(FilterConfig arg0) throws ServletException {
+ // Mock implementation
+ }
+
+}