| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You 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. |
| */ |
| |
| package org.apache.sling.resourceaccesssecurity.it; |
| |
| |
| import org.junit.Test; |
| |
| public class SecuredProviderResourceAccessSecurityTest extends ResourceAccessSecurityTestBase { |
| |
| public void testNonExistingResource() throws Exception { |
| String path = "/test/secured-provider/noresource.json"; |
| |
| testRead(getServerUsername(), getServerPassword(), path, 404); |
| testRead(getTestUsername(), getTestPassword(), path, 404); |
| } |
| |
| @Test |
| public void testAllowedReadAccess() throws Exception { |
| String path = "/test/secured-provider/read/prov/providergate1-allowread_providergate2-denyread/test.json"; |
| |
| testRead(getServerUsername(), getServerPassword(), path, 200); |
| testRead(getTestUsername(), getTestPassword(), path, 200); |
| testRead(null, null, path, 200); |
| } |
| |
| @Test |
| public void testDeniedReadAccessFromNonModifiableProvider() throws Exception { |
| String path = "/test/secured-provider/read/prov/providergate1-denyread/test.json"; |
| |
| testRead(getServerUsername(), getServerPassword(), path, 404); |
| testRead(getTestUsername(), getTestPassword(), path, 404); |
| testRead(null, null, path, 404); |
| } |
| |
| @Test |
| public void testDeniedReadAccessFromModifiableProvider() throws Exception { |
| String path = "/test/secured-provider/read-update/prov/providergate1-denyread/test.json"; |
| |
| testRead(getServerUsername(), getServerPassword(), path, 404); |
| testRead(getTestUsername(), getTestPassword(), path, 404); |
| } |
| |
| |
| @Test |
| public void testNotDefinedReadAccess() throws Exception { |
| String path = "/test/secured-provider/read-update/prov/providergate2-denyupdate/test.json"; |
| |
| testRead(getServerUsername(), getServerPassword(), path, 404); |
| testRead(getTestUsername(), getTestPassword(), path, 404); |
| testRead(null, null, path, 404); |
| } |
| |
| |
| @Test |
| public void testAllowedReadAndUpdate() throws Exception { |
| String path = "/test/secured-provider/read-update/prov/providergate2-allowupdate_providergate1-allowread/test.json"; |
| |
| testRead(getTestUsername(), getTestPassword(), path, 200); |
| testUpdate(getTestUsername(), getTestPassword(), path, 200); |
| } |
| |
| |
| @Test |
| public void testUpdateAllowedUpdateAllowedRead() throws Exception { |
| String allowPath = "/test/secured-provider/read-update/prov/providergate1-allowread_providergate1-allowupdate/test.json"; |
| |
| testUpdate(getTestUsername(), getTestPassword(), allowPath, 200); |
| } |
| |
| @Test |
| public void testUpdateAllowedUpdateDeniedRead() throws Exception { |
| String path = "/test/secured-provider/read-update/prov/providergate2-allowupdate_providergate1-denyread/test.json"; |
| |
| testRead(getTestUsername(), getTestPassword(), path, 404); |
| testUpdate(getTestUsername(), getTestPassword(), path, 500, "UnsupportedOperationException"); |
| } |
| |
| @Test |
| public void testUpdateDeniedUpdateDeniedRead() throws Exception { |
| String path = "/test/secured-provider/read-update/prov/providergate2-denyupdate_providergate1-denyread/test.json"; |
| |
| testRead(getTestUsername(), getTestPassword(), path, 404); |
| testUpdate(getTestUsername(), getTestPassword(), path, 500, "UnsupportedOperationException"); |
| } |
| |
| @Test |
| public void testUpdateDeniedUpdateAllowedRead() throws Exception { |
| String path = "/test/secured-provider/read-update/prov/providergate2-denyupdate_providergate1-allowread/test.json"; |
| |
| testRead(getTestUsername(), getTestPassword(), path, 200); |
| testUpdate(getTestUsername(), getTestPassword(), path, 500, "is not modifiable"); |
| } |
| |
| @Test |
| public void testReadOnlyApplicationAccessGatePresent() throws Exception { |
| String path = "/test/secured-provider/read/app/appgate1_allowread/test.json"; |
| |
| testRead(getTestUsername(), getTestPassword(), path, 404); |
| } |
| |
| @Test |
| public void testReadMixedAccessGatesPresent() throws Exception { |
| String path1 = "/test/secured-provider/read/mixed/appgate1-allowread_providergate1-denyread/test.json"; |
| String path2 = "/test/secured-provider/read/mixed/appgate1-denyread_providergate1-allowread/test.json"; |
| String path3 = "/test/secured-provider/read/mixed/appgate1-allowread_providergate1-allowread/test.json"; |
| |
| testRead(getTestUsername(), getTestPassword(), path1, 404); |
| testRead(getTestUsername(), getTestPassword(), path2, 404); |
| testRead(getTestUsername(), getTestPassword(), path3, 200); |
| } |
| |
| @Test |
| public void testReadNoAccessGatePresent() throws Exception { |
| String path = "/test/secured-provider/read/nogate/test.json"; |
| |
| testRead(getTestUsername(), getTestPassword(), path, 404); |
| } |
| |
| @Test |
| public void testUpdateNoAccessGatePresent() throws Exception { |
| String path = "/test/secured-provider/read-update/nogate/test.json"; |
| |
| testUpdate(getTestUsername(), getTestPassword(), path, 500, "UnsupportedOperationException"); |
| } |
| |
| } |