From 58ab8b691c1d01f9237306a55eb835f01c6705c9 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Tue, 26 Feb 2013 12:15:53 +0100 Subject: [PATCH] Re-enable ignored SecurityManager-related test Prior to this change, CallbacksSecurityTests#testContainerPrivileges was @Ignored because it caused the build to fail under Gradle. After some analysis, the root cause was determined to be the fact that (a) a restrictive SecurityManager is active during the running of this test, and (b), Gradle intercepts System.out and routes it through its internal LogBack-based logging system. LogBack requires a call to Class#getClassLoader when handling logging statements, and the SecurityManager disallows this call, thus raising the error that fails the build. This commit solves the problem by eliminating the System.out.println call in question and removing the @Ignore annotation from the test. The console output was diagnostic in nature anyway, and not required for the successful execution of the test's assertions. Issue: SPR-10074 --- .../support/security/CallbacksSecurityTests.java | 13 +++---------- .../support/security/support/ConstructorBean.java | 4 ++-- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/support/security/CallbacksSecurityTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/support/security/CallbacksSecurityTests.java index c8c6595e45..d0439fa93e 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/support/security/CallbacksSecurityTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/support/security/CallbacksSecurityTests.java @@ -16,12 +16,6 @@ package org.springframework.beans.factory.support.security; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - import java.lang.reflect.Method; import java.net.URL; import java.security.AccessControlContext; @@ -39,8 +33,8 @@ import javax.security.auth.AuthPermission; import javax.security.auth.Subject; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; + import org.springframework.beans.BeansException; import org.springframework.beans.factory.BeanClassLoaderAware; import org.springframework.beans.factory.BeanCreationException; @@ -60,6 +54,8 @@ import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; import org.springframework.core.io.DefaultResourceLoader; import org.springframework.core.io.Resource; +import static org.junit.Assert.*; + /** * Security test case. Checks whether the container uses its privileges for its * internal work but does not leak them when touching/calling user code. @@ -456,9 +452,6 @@ public class CallbacksSecurityTests { } @Test - @Ignore("passes under Eclipse, but fails under Gradle with https://gist.github.com/1664133") - // TODO [SPR-10074] passes under Eclipse, but fails under Gradle with - // https://gist.github.com/1664133 public void testContainerPrivileges() throws Exception { AccessControlContext acc = provider.getAccessControlContext(); diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/support/security/support/ConstructorBean.java b/spring-beans/src/test/java/org/springframework/beans/factory/support/security/support/ConstructorBean.java index 0b65929fdd..a68028c592 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/support/security/support/ConstructorBean.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/support/security/support/ConstructorBean.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2013 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.beans.factory.support.security.support; /** @@ -25,6 +26,5 @@ public class ConstructorBean { } public ConstructorBean(Object obj) { - System.out.println("Received object " + obj); } }