    1   package groovy.security;
    2
    3   import junit.framework.Test;
    4   import junit.framework.TestSuite;
    5   import junit.textui.TestRunner;
    6
    7
    8   /***
    9    * Read a .groovy file from a signed jar and verify that a policy file grant with a signedBy field
    10   * works.  The following steps were used to create and manage the keys used to sign and read the jar:
    11   * <ol>
    12   * <li>keytool -genkey -alias groovy -keypass keypass -keystore groovystore -storepass storepass -validity 7000
    13   * <li>keytool -export -keystore groovystore -alias groovy -file GroovyDev.cer
    14   * <li>keytool -import -alias groovy -file GroovyDev.cer -keystore groovykeys
    15   * </ol>
    16   * Once the keys are constructed, creat the jar and sign:
    17   * <ol>
    18   * <li>jar -cvf Groovy.jar groovy
    19   * <li>jarsigner -keystore groovystore -signedjar GroovyJarTest.jar Groovy.jar groovy
    20   * </ol>
    21   * Add the keystore to the policy file and write the grant:
    22   * <ol>
    23   * <li>keystore "file:${user.dir}/src/test/groovy/security/groovykeys";
    24   * </ol>
    25   */
    26  public class SignedJarTest extends SecurityTestSupport {
    27
    28  	public static void main(String[] args) {
    29          TestRunner.run( suite() );
    30      }
    31
    32      public static Test suite() {
    33      	return new TestSuite(SignedJarTest.class);
    34      }
    35
    36      public void testReadSignedJar() throws Exception {
    37      	if (!isSecurityAvailable()) {
    38      		return;
    39      	}
    40      	Class c = loader.loadClass("groovy.security.JarTest");
    41      	executeTest(c, null);
    42      }
    43  }