В зависимости от контекста, вы полагаетесь на менеджера безопасности и соответствующую политику безопасности, чтобы делать правильные вещи. Обычно, если вы не используете магию загрузчика классов, вам не нужно делать ничего особенного. Если у вас есть контроль над политикой безопасности (например, в приложении Java, а не в апплете), вы можете предоставить разрешения на вызов ваших jar-файлов только для определенного другого кода. Если вы используете кодовую базу для распознавания кода, лучше использовать https URL. Также не вредно ограничивать доступ к банкам на веб-сервере, если вы знаете, откуда / кому должен осуществляться доступ, но, вероятно, это больше проблем, чем оно того стоит.
Однако вы всегда должны помнить, что вызывающий ваш API может не быть вашим кодом и может быть злонамеренным. Таким образом, при моделировании угроз вы должны подумать о том, что может сделать злонамеренный пользователь, если он каким-то образом получит доступ к функциям, предоставляемым API, предоставляемым вашим кодом. Менеджер безопасности должен проверить стек вызовов, чтобы предотвратить подобные вещи. Но если, например, у вашего подписанного jar есть метод LaunchMissiles () ... вы можете спросить пользователя, уверены ли они в любом случае. И вы также можете аутентифицировать пользователя.
Также не обязательно полагаться на то, что пользователь нажимает правую кнопку в любом предупреждении безопасности, особенно если оно относится к сертификатам, URL-адресам и т. Д. - большинство пользователей попадают в одну из двух категорий: те, кто нажимают кнопку ОК при любом предупреждении, потому что они не не понимают этого, и те, кто нажимают кнопку «Отмена» в любом предупреждении, потому что они этого не понимают.