Hi Alex,
I created the following applet:
package org.apache.juddi.auth;
import java.applet.Applet;
import java.awt.Graphics;
import java.security.KeyStore;
import java.util.Enumeration;
public class CertApplet extends Applet {
public void paint(Graphics g) {
System.out.println("hey");
g.drawRect(100, 100, 200, 200);
g.drawString("Hello world!", 100, 0);
try {
System.out.println("Hello keychain!");
KeyStore ks = KeyStore.getInstance("KeychainStore");
ks.load(null);
Enumeration<String> e = ks.aliases();
int y = 10;
while (e.hasMoreElements()) {
String alias = e.nextElement();
if (ks.isCertificateEntry(alias)) {
System.out.printf("%s (certificate)\n", alias);
} else if (ks.isKeyEntry(alias)) {
System.out.printf("%s (key)\n", alias);
} else {
System.out.printf("%s (???)\n", alias);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
and called it from
<HTML>
<HEAD>
<TITLE> A Simple Program </TITLE>
</HEAD>
<BODY>
Here is the output of my appletje:
<APPLET CODE="org.apache.juddi.auth.CertApplet" WIDTH="250" HEIGHT="250"
jar="hello.jar">
</APPLET>
</BODY>
</HTML>
And I self signed the jar. However the console says:
basic: Applet started
basic: Told clients applet is started
hey
java.security.AccessControlException: access denied
("java.lang.RuntimePermission" "useKeychainStore")
at
java.security.AccessControlContext.checkPermission(AccessControlContext.java:366)
at
java.security.AccessController.checkPermission(AccessController.java:560)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at apple.security.KeychainStore.permissionCheck(KeychainStore.java:119)
at apple.security.KeychainStore.engineLoad(KeychainStore.java:723)
at java.security.KeyStoreSpi.engineLoad(KeyStoreSpi.java:384)
at java.security.KeyStore.load(KeyStore.java:1248)
at org.apache.juddi.auth.CertApplet.paint(CertApplet.java:16)
From a test outside the browser this runs ok. Not sure the applet can
get access to the keychainstore..
--Kurt