Funktionierendes Beispiel:
[Search.html]
[Search.java]
import java.applet.Applet;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.awt.Graphics;
import java.io.*;
import java.awt.Color;
public class Search extends Applet {
private String _search = new String();
private String _status = new String();
public void search(String search) {
_search = search;
repaint();
}
public void write() {
String fileName = System.getProperty(„user.home“)
- System.getProperty(„file.separator“) + „searchResult.html“;
String msg = „This message was written by a signed applet: „+_search+“\n“;
try {
FileWriter fos = new FileWriter(fileName);
fos.write(msg, 0, msg.length());
fos.flush();
fos.close();
_status = new String(„Successfully created file :“ + fileName);
} catch (Exception e) {
_status = new String("Unable to create file : " + fileName);
}
}
public void paint(Graphics g) {
write();
setBackground(Color.lightGray);
g.setColor(Color.blue);
g.drawString(„Search“, 120, 50);
g.setColor(Color.magenta);
g.drawString(_search, 0, 0);
g.drawString(_status, 50, 120);
}
}
[Write.jp]
keystore „user.store“;
grant signedBy „Test“ {
permission java.util.PropertyPermission
„user.home“, „read“;
permission java.io.FilePermission
„${user.home}/searchResult.html“, „write“;
};
[run.bat]
javac Search.java
jar cvf Search.jar Search.class
keytool -genkey -alias signFiles -keystore test.store -keypass kpi135 -dname „cn=Test“ -storepass ab987c
jarsigner -keystore testo.store -storepass ab987c -keypass kpi135 -signedjar SignedSearch.jar Search.jar signFiles
keytool -export -keystore test.store -storepass ab987c -alias signFiles -file Test.cer
keytool -import -alias Test -file Test.cer -keystore user.store -storepass abcdefgh
appletviewer -J-Djava.security.policy=Write.jp Search.html
Wenn Du das ganze nun aus einem Frameaufrufst geht es nicht. Beispiel:
[index.html]
Shit happens