+++ /dev/null
-/*******************************************************************************\r
- * ============LICENSE_START====================================================\r
- * * org.onap.aaf\r
- * * ===========================================================================\r
- * * Copyright © 2017 AT&T Intellectual Property. All rights reserved.\r
- * * ===========================================================================\r
- * * Licensed under the Apache License, Version 2.0 (the "License");\r
- * * you may not use this file except in compliance with the License.\r
- * * You may obtain a copy of the License at\r
- * * \r
- * * http://www.apache.org/licenses/LICENSE-2.0\r
- * * \r
- * * Unless required by applicable law or agreed to in writing, software\r
- * * distributed under the License is distributed on an "AS IS" BASIS,\r
- * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * * See the License for the specific language governing permissions and\r
- * * limitations under the License.\r
- * * ============LICENSE_END====================================================\r
- * *\r
- * * ECOMP is a trademark and service mark of AT&T Intellectual Property.\r
- * *\r
- ******************************************************************************/\r
-package org.onap.aaf.cadi.lur.aaf.test;\r
-\r
-import static org.junit.Assert.assertEquals;\r
-\r
-import java.io.BufferedReader;\r
-import java.io.IOException;\r
-import java.io.UnsupportedEncodingException;\r
-import java.net.HttpURLConnection;\r
-import java.security.Principal;\r
-import java.util.Collection;\r
-import java.util.Enumeration;\r
-import java.util.Locale;\r
-import java.util.Map;\r
-\r
-import javax.servlet.AsyncContext;\r
-import javax.servlet.DispatcherType;\r
-import javax.servlet.RequestDispatcher;\r
-import javax.servlet.ServletContext;\r
-import javax.servlet.ServletException;\r
-import javax.servlet.ServletInputStream;\r
-import javax.servlet.ServletRequest;\r
-import javax.servlet.ServletResponse;\r
-import javax.servlet.http.Cookie;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-import javax.servlet.http.HttpSession;\r
-import javax.servlet.http.Part;\r
-\r
-import org.junit.BeforeClass;\r
-import org.junit.Test;\r
-import org.onap.aaf.cadi.CadiException;\r
-import org.onap.aaf.cadi.Lur;\r
-import org.onap.aaf.cadi.Permission;\r
-import org.onap.aaf.cadi.PropAccess;\r
-import org.onap.aaf.cadi.Symm;\r
-import org.onap.aaf.cadi.Taf.LifeForm;\r
-import org.onap.aaf.cadi.aaf.AAFPermission;\r
-import org.onap.aaf.cadi.aaf.v2_0.AAFConHttp;\r
-import org.onap.aaf.cadi.aaf.v2_0.AAFLurPerm;\r
-import org.onap.aaf.cadi.aaf.v2_0.AAFTaf;\r
-import org.onap.aaf.cadi.locator.DNSLocator;\r
-import org.onap.aaf.cadi.lur.ConfigPrincipal;\r
-import org.onap.aaf.cadi.lur.LocalPermission;\r
-import org.onap.aaf.cadi.taf.TafResp;\r
-\r
-public class JU_Lur2_0Call {\r
- private static AAFConHttp aaf;\r
- private static PropAccess access;\r
-\r
- @BeforeClass\r
- public static void setUpBeforeClass() throws Exception {\r
- access = new PropAccess();\r
- aaf = new AAFConHttp(access,new DNSLocator(access,"https","localhost","8100"));\r
- aaf.basicAuth("testid", "whatever");\r
- }\r
-\r
- @Test \r
- public void test() throws Exception {\r
- \r
- AAFLurPerm aafLur = aaf.newLur();\r
-\r
- Principal pri = new ConfigPrincipal("testid@aaf.att.com","whatever");\r
- for (int i = 0; i < 10; ++i) {\r
- print(aafLur, pri, new LocalPermission("com.test.JU_Lur2_0Call.service|myInstance|write"),true);\r
- print(aafLur, pri, new LocalPermission("com.test.JU_Lur2_0Call.service|kumquat|write"),false);\r
- print(aafLur, pri, new LocalPermission("com.test.JU_Lur2_0Call.service|myInstance|read"),true);\r
- print(aafLur, pri, new LocalPermission("com.test.JU_Lur2_0Call.service|kumquat|read"),true);\r
- \r
- print(aafLur, pri, new AAFPermission("com.test.JU_Lur2_0Call.service","myInstance","write"),true);\r
- print(aafLur, pri, new AAFPermission("com.test.JU_Lur2_0Call.service","kumquat","write"),false);\r
- print(aafLur, pri, new AAFPermission("com.test.JU_Lur2_0Call.service","myInstance","read"),true);\r
- print(aafLur, pri, new AAFPermission("com.test.JU_Lur2_0Call.service","kumquat","read"),true);\r
-\r
- print(aafLur, pri, new LocalPermission("com.test.JU_Lur2_0Call.service|!kum.*|read"),true);\r
- print(aafLur, pri, new LocalPermission("com.test.JU_Lur2_0Call.service|myInstance|!wr*"),true);\r
- print(aafLur, pri, new LocalPermission("com.test.JU_Lur2_0Call.service|myInstance"),true);\r
-\r
- print(aafLur, pri, new AAFPermission("com.test.JU_Lur2_0Call.service","!kum.*","read"),true);\r
- print(aafLur, pri, new AAFPermission("com.test.JU_Lur2_0Call.service","myInstance","!wr*"),true);\r
-\r
- print(aafLur, pri, new LocalPermission("com.test.JU_Lur2_0Call.service|!kum[Qq]uat|read"),true);\r
- print(aafLur, pri, new LocalPermission("com.test.JU_Lur2_0Call.service|!my[iI]nstance|!wr*"),true);\r
- print(aafLur, pri, new LocalPermission("com.test.JU_Lur2_0Call.service|!my[iI]nstance|!wr*"),true);\r
- print(aafLur, pri, new LocalPermission("com.test.JU_Lur2_0Call.service|myInstance|!wr*"),true);\r
-\r
- print(aafLur, pri, new AAFPermission("com.test.JU_Lur2_0Call.service","!kum[Qq]uat","read"),true);\r
- print(aafLur, pri, new AAFPermission("com.test.JU_Lur2_0Call.service","!my[iI]nstance","!wr*"),true);\r
- print(aafLur, pri, new AAFPermission("com.test.JU_Lur2_0Call.service","!my[iI]nstance","!wr*"),true);\r
- print(aafLur, pri, new AAFPermission("com.test.JU_Lur2_0Call.service","myInstance","!wr*"),true);\r
- \r
-\r
- print(aafLur, pri, new LocalPermission("com.test.JU_Lur2_0Call.service|!my.nstance|!wr*"),true);\r
- print(aafLur, pri, new LocalPermission("com.test.JU_Lur2_0Call.service|my.nstance|!wr*"),false);\r
- \r
- print(aafLur, pri, new LocalPermission("com.test.JU_Lur2_0Call.service|my.nstance|!wr*"),false);\r
- \r
- //Maitrayee, aren't we going to have issues if we do RegExp with "."?\r
- //Is it too expensive to only do Reg Ex in presence of special characters, []{}*, etc? Not sure this helps for GRID.\r
- print(aafLur, pri, new LocalPermission("com.test.JU_Lur2_0Call.service|kum.quat|read"),true);\r
- print(aafLur, pri, new LocalPermission("com.test.JU_Lur2_0Call.service|!kum..uat|read"),true);\r
- \r
- print(aafLur, pri, new LocalPermission("com.test.JU_Lur2_0Call.service|myInstance"),true); // ok if Stored Action is "*"\r
- \r
- // Key Evaluations\r
- print(aafLur, pri, new LocalPermission("com.test.JU_Lur2_0Call.service|:myCluster:*:!my.*|write"),true); // ok if Stored Action is "*"\r
- print(aafLur, pri, new LocalPermission("com.test.JU_Lur2_0Call.service|:myCluster:*|write"),false); // not ok if key lengths don't match "*"\r
- print(aafLur, pri, new LocalPermission("com.test.JU_Lur2_0Call.service|:myCluster:*:myCF|write"),true); // ok if Stored Action is "*"\r
- print(aafLur, pri, new AAFPermission("com.test.JU_Lur2_0Call.service",":myCluster:*:!my.*","write"),true); // ok if Stored Action is "*"\r
- print(aafLur, pri, new AAFPermission("com.test.JU_Lur2_0Call.service",":myCluster:*:myCF","write"),true); // ok if Stored Action is "*"\r
- print(aafLur, pri, new AAFPermission("com.test.JU_Lur2_0Call.service",":myCluster:*","write"),false); // not ok if key lengths don't match\r
- \r
- }\r
-\r
- print(aafLur, pri, new LocalPermission("bogus"),false);\r
-\r
-// try {\r
-// Thread.sleep(7000);\r
-// } catch (InterruptedException e) {\r
-// e.printStackTrace();\r
-// }\r
- for (int i = 0; i < 10; ++i)\r
- print(aafLur, pri, new LocalPermission("supergroup"),false);\r
-\r
- System.out.println("All Done");\r
- }\r
- @Test\r
- public void testTaf() throws Exception {\r
- AAFTaf<?> aaft = new AAFTaf<HttpURLConnection>(aaf,true);\r
- \r
- TafResp resp;\r
- // No Header\r
- resp = aaft.validate(LifeForm.CBLF, new Req(), null);\r
- assertEquals(TafResp.RESP.TRY_AUTHENTICATING, resp.isAuthenticated());\r
-\r
- String auth = "Basic " + Symm.base64.encode("testid:whatever");\r
- resp = aaft.validate(LifeForm.CBLF, new Req("Authorization",auth), null);\r
- assertEquals(TafResp.RESP.IS_AUTHENTICATED, resp.isAuthenticated());\r
- \r
- }\r
-// @Test\r
-// public void testRole() throws CadiException {\r
-// TestAccess ta = new TestAccess();\r
-// AAFLurRole1_0 aafLur = new AAFLurRole1_0(\r
-// ta,\r
-//// "http://DME2RESOLVE/service=com.att.authz.AuthorizationService/version=1.0.0/envContext=UAT/routeOffer=BAU_SE",\r
-// "http://DME2RESOLVE/service=com.att.authz.AuthorizationService/version=1.0.0/envContext=DEV/routeOffer=D1",\r
-// "m12345", "m12345pass", 50000, // dme Time\r
-// // 5*60000); // 5 minutes User Expiration\r
-// 50000, // 5 seconds after Expiration\r
-// 200); // High Count of items.. These do not take much memory\r
-//\r
-// Principal pri = new ConfigPrincipal("xy1234","whatever");\r
-// for (int i = 0; i < 10; ++i) {\r
-//// print(aafLur, pri, new LocalPermission("*|*|*|com.att.authz"));\r
-// print(aafLur, pri, new LocalPermission("service|myInstance|write"),false);\r
-// print(aafLur, pri, new LocalPermission("com.test.JU_Lur2_0Call.service|myInstance|write"),false);\r
-// print(aafLur, pri, new LocalPermission("com.att.cadi"),true);\r
-// print(aafLur, pri, new LocalPermission("global"),true);\r
-// print(aafLur, pri, new LocalPermission("kumquat"),false);\r
-// }\r
-//\r
-// print(aafLur, pri, new LocalPermission("bogus"),false);\r
-//\r
-// for (int i = 0; i < 10; ++i)\r
-// print(aafLur, pri, new LocalPermission("supergroup"),false);\r
-//\r
-// System.out.println("All Done");\r
-// }\r
-\r
-\r
- private void print(Lur aafLur, Principal pri, Permission perm, boolean shouldBe)\r
- throws CadiException {\r
- long start = System.nanoTime();\r
- \r
- // The Call\r
- boolean ok = aafLur.fish(pri, perm);\r
- \r
- assertEquals(shouldBe,ok);\r
- float ms = (System.nanoTime() - start) / 1000000f;\r
- if (ok) {\r
- System.out.println("Yes, part of " + perm.getKey() + " (" + ms\r
- + "ms)");\r
- } else {\r
- System.out.println("No, not part of " + perm.getKey() + " (" + ms\r
- + "ms)");\r
- }\r
- }\r
-\r
- @SuppressWarnings("rawtypes")\r
- public class Req implements HttpServletRequest {\r
- private String[] headers;\r
-\r
- public Req(String ... headers) {\r
- this.headers = headers;\r
- }\r
-\r
- public Object getAttribute(String name) {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- public Enumeration getAttributeNames() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public String getCharacterEncoding() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public void setCharacterEncoding(String env)\r
- throws UnsupportedEncodingException {\r
- // TODO Auto-generated method stub\r
- \r
- }\r
-\r
- public int getContentLength() {\r
- // TODO Auto-generated method stub\r
- return 0;\r
- }\r
-\r
- public String getContentType() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public ServletInputStream getInputStream() throws IOException {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public String getParameter(String name) {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- public Enumeration getParameterNames() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public String[] getParameterValues(String name) {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- public Map getParameterMap() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public String getProtocol() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public String getScheme() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public String getServerName() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public int getServerPort() {\r
- // TODO Auto-generated method stub\r
- return 0;\r
- }\r
-\r
- public BufferedReader getReader() throws IOException {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public String getRemoteAddr() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public String getRemoteHost() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public void setAttribute(String name, Object o) {\r
- // TODO Auto-generated method stub\r
- \r
- }\r
-\r
- public void removeAttribute(String name) {\r
- // TODO Auto-generated method stub\r
- \r
- }\r
-\r
- public Locale getLocale() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- public Enumeration getLocales() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public boolean isSecure() {\r
- // TODO Auto-generated method stub\r
- return false;\r
- }\r
-\r
- public RequestDispatcher getRequestDispatcher(String path) {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public String getRealPath(String path) {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public int getRemotePort() {\r
- // TODO Auto-generated method stub\r
- return 0;\r
- }\r
-\r
- public String getLocalName() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public String getLocalAddr() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public int getLocalPort() {\r
- // TODO Auto-generated method stub\r
- return 0;\r
- }\r
-\r
- public String getAuthType() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public Cookie[] getCookies() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public long getDateHeader(String name) {\r
- // TODO Auto-generated method stub\r
- return 0;\r
- }\r
-\r
- public String getHeader(String name) {\r
- for(int i=1;i<headers.length;i=i+2) {\r
- if(headers[i-1].equals(name)) return headers[i];\r
- }\r
- return null;\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- public Enumeration getHeaders(String name) {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- public Enumeration getHeaderNames() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public int getIntHeader(String name) {\r
- // TODO Auto-generated method stub\r
- return 0;\r
- }\r
-\r
- public String getMethod() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public String getPathInfo() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public String getPathTranslated() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public String getContextPath() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public String getQueryString() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public String getRemoteUser() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public boolean isUserInRole(String role) {\r
- // TODO Auto-generated method stub\r
- return false;\r
- }\r
-\r
- public Principal getUserPrincipal() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public String getRequestedSessionId() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public String getRequestURI() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public StringBuffer getRequestURL() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public String getServletPath() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public HttpSession getSession(boolean create) {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public HttpSession getSession() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- public boolean isRequestedSessionIdValid() {\r
- // TODO Auto-generated method stub\r
- return false;\r
- }\r
-\r
- public boolean isRequestedSessionIdFromCookie() {\r
- // TODO Auto-generated method stub\r
- return false;\r
- }\r
-\r
- public boolean isRequestedSessionIdFromURL() {\r
- // TODO Auto-generated method stub\r
- return false;\r
- }\r
-\r
- public boolean isRequestedSessionIdFromUrl() {\r
- // TODO Auto-generated method stub\r
- return false;\r
- }\r
-\r
- @Override\r
- public ServletContext getServletContext() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- @Override\r
- public AsyncContext startAsync() throws IllegalStateException {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- @Override\r
- public AsyncContext startAsync(ServletRequest servletRequest,\r
- ServletResponse servletResponse) throws IllegalStateException {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- @Override\r
- public boolean isAsyncStarted() {\r
- // TODO Auto-generated method stub\r
- return false;\r
- }\r
-\r
- @Override\r
- public boolean isAsyncSupported() {\r
- // TODO Auto-generated method stub\r
- return false;\r
- }\r
-\r
- @Override\r
- public AsyncContext getAsyncContext() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- @Override\r
- public DispatcherType getDispatcherType() {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- @Override\r
- public boolean authenticate(HttpServletResponse response)\r
- throws IOException, ServletException {\r
- // TODO Auto-generated method stub\r
- return false;\r
- }\r
-\r
- @Override\r
- public void login(String username, String password)\r
- throws ServletException {\r
- // TODO Auto-generated method stub\r
- \r
- }\r
-\r
- @Override\r
- public void logout() throws ServletException {\r
- // TODO Auto-generated method stub\r
- \r
- }\r
-\r
- @Override\r
- public Collection<Part> getParts() throws IOException, ServletException {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
-\r
- @Override\r
- public Part getPart(String name) throws IOException, ServletException {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
- \r
- }\r
-}\r