Можно ли подписать только часть апплета? То есть, у вас есть апплет, который не выводит никаких предупреждений системы безопасности о подписании, но если используется какая-то конкретная функция (требующая привилегий), тогда использовать подписанный jar?
Насколько я могу судить, некоторые (возможно, большинство) браузеров выдают предупреждение для подписанного апплета, даже если вы вообще не запрашиваете привилегии во время выполнения. Я бы предпочел избежать этого, если возможно.




У меня сложилось впечатление, что Sun хочет препятствовать созданию апплетов и поощрять использование Java Web Start. Я думаю, что проблема подписи апплетов - часть проблемы. См. Эту документацию от Sun: Часто задаваемые вопросы по запуску Java Web.
Я не пробовал этого, но не могли бы вы сегментировать функции, требующие подписи, на отдельные банки, требующие проверки разрешений только тогда, когда пользователю нужны функции в этих банках?
Попробуйте разделить свой код на неподписанный jar и подписанный jar.
Теоретически вы можете (подписанный + неподписанный jar), но на практике это приведет к тому, что ваш код будет обрабатываться как беззнаковый. Решение о доступе должно приниматься потоком, а не непосредственным вызывающим абонентом. Если поток содержит в стеке вызов, сделанный из объекта из неподписанного кода, весь вызов следует рассматривать как беззнаковый. Если вы обойдете это, вы обнаружили ошибку.
Другими словами ... Нет.
Если мне не интересно, могу я поинтересоваться, почему вы хотите частично подписать свой код?
Я сейчас пробовал это, и это работает. Sun на самом деле делает что-то очень похожее, чтобы заставить Java3D и JOGL работать и в апплетах, и я не считаю, что это считается ошибкой. Подписание всего приложения приведет к появлению диалоговых окон безопасности во время загрузки апплета. Это плохо, так как мало кому нужна функциональность.
Это совсем не так, как должны показать недавние усилия Sun по разработке нового (значительно улучшенного) плагина. Web Start - совершенно другое животное, хотя они становятся все ближе друг к другу. Я попробую multijar, если больше ничего не должно работать с JNLPAppletLauncher.