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 }