You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by re...@apache.org on 2019/09/23 19:48:56 UTC
svn commit: r1867396 - in /jackrabbit/oak/trunk:
oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/
oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/
oak-security-spi/ oak-securi...
Author: reschke
Date: Mon Sep 23 19:48:55 2019
New Revision: 1867396
URL: http://svn.apache.org/viewvc?rev=1867396&view=rev
Log:
OAK-8641: log uses of API methods to be removed as part of OAK-7358
Added:
jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/AclGroupDeprecation.java (with props)
jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/tools/
Modified:
jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProvider.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipal.java
jackrabbit/oak/trunk/oak-security-spi/pom.xml
jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalProvider.java
jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/EmptyPrincipalProvider.java
jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/EveryonePrincipal.java
jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalProvider.java
jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/package-info.java
jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/EmptyPrincipalProviderTest.java
Modified: jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProvider.java?rev=1867396&r1=1867395&r2=1867396&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProvider.java (original)
+++ jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProvider.java Mon Sep 23 19:48:55 2019
@@ -63,6 +63,7 @@ import org.apache.jackrabbit.oak.plugins
import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentityRef;
import org.apache.jackrabbit.oak.spi.security.authentication.external.basic.DefaultSyncConfig;
import org.apache.jackrabbit.oak.spi.security.authentication.external.impl.ExternalIdentityConstants;
+import org.apache.jackrabbit.oak.spi.security.principal.AclGroupDeprecation;
import org.apache.jackrabbit.oak.spi.security.principal.GroupPrincipals;
import org.apache.jackrabbit.oak.spi.security.principal.PrincipalImpl;
import org.apache.jackrabbit.oak.spi.security.principal.PrincipalProvider;
@@ -307,6 +308,7 @@ class ExternalGroupPrincipalProvider imp
@Override
public boolean addMember(Principal user) {
+ AclGroupDeprecation.handleCall();
if (isMember(user)) {
return false;
} else {
@@ -316,6 +318,7 @@ class ExternalGroupPrincipalProvider imp
@Override
public boolean removeMember(Principal user) {
+ AclGroupDeprecation.handleCall();
if (!isMember(user)) {
return false;
} else {
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipal.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipal.java?rev=1867396&r1=1867395&r2=1867396&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipal.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipal.java Mon Sep 23 19:48:55 2019
@@ -30,6 +30,7 @@ import org.apache.jackrabbit.api.securit
import org.apache.jackrabbit.api.security.user.UserManager;
import org.apache.jackrabbit.oak.api.Tree;
import org.apache.jackrabbit.oak.namepath.NamePathMapper;
+import org.apache.jackrabbit.oak.spi.security.principal.AclGroupDeprecation;
import org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
@@ -115,11 +116,13 @@ abstract class AbstractGroupPrincipal ex
@Override
public boolean addMember(Principal principal) {
+ AclGroupDeprecation.handleCall();
throw new UnsupportedOperationException();
}
@Override
public boolean removeMember(Principal principal) {
+ AclGroupDeprecation.handleCall();
throw new UnsupportedOperationException();
}
}
Modified: jackrabbit/oak/trunk/oak-security-spi/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/pom.xml?rev=1867396&r1=1867395&r2=1867396&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-security-spi/pom.xml Mon Sep 23 19:48:55 2019
@@ -177,6 +177,13 @@
<artifactId>logback-classic</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.jackrabbit</groupId>
+ <artifactId>oak-commons</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</project>
Added: jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/AclGroupDeprecation.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/AclGroupDeprecation.java?rev=1867396&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/AclGroupDeprecation.java (added)
+++ jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/AclGroupDeprecation.java Mon Sep 23 19:48:55 2019
@@ -0,0 +1,90 @@
+/*
+ * 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.jackrabbit.oak.spi.security.principal;
+
+import java.util.Locale;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class AclGroupDeprecation {
+
+ private static final Logger LOG = LoggerFactory.getLogger(AclGroupDeprecation.class);
+
+ private static final String DEFAULT = "debug";
+
+ private static final String TLOGLEVEL = System.getProperty("org.apache.jackrabbit.oak.spi.tools.AclGroupDeprecation.LOGLEVEL",
+ DEFAULT);
+
+ private static String LOGLEVEL;
+
+ static {
+ String t;
+
+ switch (TLOGLEVEL.toLowerCase(Locale.ENGLISH)) {
+ case "error":
+ case "warn":
+ case "info":
+ case "debug":
+ t = TLOGLEVEL.toLowerCase(Locale.ENGLISH);
+ break;
+ default:
+ t = DEFAULT;
+ break;
+ }
+
+ LOGLEVEL = t;
+ }
+
+ private AclGroupDeprecation() {
+ }
+
+ public static void handleCall() throws UnsupportedOperationException {
+ String message = "use of deprecated java.acl.Group-related API - this method is going to be removed in future Oak releases - see OAK-7358 for details";
+
+ switch (LOGLEVEL) {
+ case "error":
+ if (LOG.isErrorEnabled()) {
+ LOG.error(message, new Exception("call stack"));
+ }
+ break;
+ case "warn":
+ if (LOG.isWarnEnabled()) {
+ LOG.warn(message, new Exception("call stack"));
+ }
+ break;
+ case "info":
+ if (LOG.isInfoEnabled()) {
+ LOG.info(message, new Exception("call stack"));
+ }
+ break;
+ case "debug":
+ if (LOG.isDebugEnabled()) {
+ LOG.debug(message, new Exception("call stack"));
+ }
+ break;
+ }
+ }
+
+ // for testing
+ public static String setLogLevel(String level) {
+ String before = LOGLEVEL;
+ LOGLEVEL = level;
+ return before;
+ }
+}
Propchange: jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/AclGroupDeprecation.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/AclGroupDeprecation.java
------------------------------------------------------------------------------
svn:executable = *
Modified: jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalProvider.java?rev=1867396&r1=1867395&r2=1867396&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalProvider.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalProvider.java Mon Sep 23 19:48:55 2019
@@ -91,6 +91,7 @@ public class CompositePrincipalProvider
@NotNull
@Override
public Set<Group> getGroupMembership(@NotNull Principal principal) {
+ AclGroupDeprecation.handleCall();
return Collections.emptySet();
}
Modified: jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/EmptyPrincipalProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/EmptyPrincipalProvider.java?rev=1867396&r1=1867395&r2=1867396&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/EmptyPrincipalProvider.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/EmptyPrincipalProvider.java Mon Sep 23 19:48:55 2019
@@ -21,6 +21,7 @@ import java.security.acl.Group;
import java.util.Collections;
import java.util.Iterator;
import java.util.Set;
+
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -42,6 +43,7 @@ public final class EmptyPrincipalProvide
@NotNull
@Override
public Set<Group> getGroupMembership(@NotNull Principal principal) {
+ AclGroupDeprecation.handleCall();
return Collections.emptySet();
}
Modified: jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/EveryonePrincipal.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/EveryonePrincipal.java?rev=1867396&r1=1867395&r2=1867396&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/EveryonePrincipal.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/EveryonePrincipal.java Mon Sep 23 19:48:55 2019
@@ -48,11 +48,13 @@ public final class EveryonePrincipal imp
//--------------------------------------------------------------< Group >---
@Override
public boolean addMember(Principal user) {
+ AclGroupDeprecation.handleCall();
return false;
}
@Override
public boolean removeMember(Principal user) {
+ AclGroupDeprecation.handleCall();
throw new UnsupportedOperationException("Cannot remove a member from the everyone group.");
}
Modified: jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalProvider.java?rev=1867396&r1=1867395&r2=1867396&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalProvider.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalProvider.java Mon Sep 23 19:48:55 2019
@@ -86,6 +86,7 @@ public interface PrincipalProvider {
*/
@NotNull
default Set<Group> getGroupMembership(@NotNull Principal principal) {
+ AclGroupDeprecation.handleCall();
return Collections.emptySet();
}
Modified: jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/package-info.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/package-info.java?rev=1867396&r1=1867395&r2=1867396&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/package-info.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/package-info.java Mon Sep 23 19:48:55 2019
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-@Version("1.7.1")
+@Version("1.8.0")
package org.apache.jackrabbit.oak.spi.security.principal;
import org.osgi.annotation.versioning.Version;
Modified: jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/EmptyPrincipalProviderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/EmptyPrincipalProviderTest.java?rev=1867396&r1=1867395&r2=1867396&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/EmptyPrincipalProviderTest.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/EmptyPrincipalProviderTest.java Mon Sep 23 19:48:55 2019
@@ -19,7 +19,9 @@ package org.apache.jackrabbit.oak.spi.se
import java.security.Principal;
import org.apache.jackrabbit.api.security.principal.PrincipalManager;
+import org.apache.jackrabbit.oak.commons.junit.LogCustomizer;
import org.junit.Test;
+import org.slf4j.event.Level;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
@@ -39,7 +41,62 @@ public class EmptyPrincipalProviderTest
}
@Test
- public void testGetGroupMembership() {
+ public void testGetGroupMembershipOnDebug() {
+ String prev = AclGroupDeprecation.setLogLevel("debug");
+ LogCustomizer customLogs = LogCustomizer.forLogger(AclGroupDeprecation.class.getName()).enable(Level.DEBUG).create();
+ try {
+ customLogs.starting();
+ testGetGroupMembership();
+ assertTrue(customLogs.getLogs().size() == 1);
+ } finally {
+ customLogs.finished();
+ AclGroupDeprecation.setLogLevel(prev);
+ }
+ }
+
+ @Test
+ public void testGetGroupMembershipOnInfo() {
+ String prev = AclGroupDeprecation.setLogLevel("info");
+ LogCustomizer customLogs = LogCustomizer.forLogger(AclGroupDeprecation.class.getName()).enable(Level.INFO).create();
+ try {
+ customLogs.starting();
+ testGetGroupMembership();
+ assertTrue(customLogs.getLogs().size() == 1);
+ } finally {
+ customLogs.finished();
+ AclGroupDeprecation.setLogLevel(prev);
+ }
+ }
+
+ @Test
+ public void testGetGroupMembershipOnWarn() {
+ String prev = AclGroupDeprecation.setLogLevel("warn");
+ LogCustomizer customLogs = LogCustomizer.forLogger(AclGroupDeprecation.class.getName()).enable(Level.WARN).create();
+ try {
+ customLogs.starting();
+ testGetGroupMembership();
+ assertTrue(customLogs.getLogs().size() == 1);
+ } finally {
+ customLogs.finished();
+ AclGroupDeprecation.setLogLevel(prev);
+ }
+ }
+
+ @Test
+ public void testGetGroupMembershipOnError() {
+ String prev = AclGroupDeprecation.setLogLevel("error");
+ LogCustomizer customLogs = LogCustomizer.forLogger(AclGroupDeprecation.class.getName()).enable(Level.ERROR).create();
+ try {
+ customLogs.starting();
+ testGetGroupMembership();
+ assertTrue(customLogs.getLogs().size() == 1);
+ } finally {
+ customLogs.finished();
+ AclGroupDeprecation.setLogLevel(prev);
+ }
+ }
+
+ private void testGetGroupMembership() {
assertTrue(principalProvider.getGroupMembership(mock(Principal.class)).isEmpty());
}