Heim Datenbank MySQL-Tutorial Applet虽签名,但是异常:java.security.AccessControlException

Applet虽签名,但是异常:java.security.AccessControlException

Jun 07, 2016 pm 03:42 PM
Aber 异常 签名

原文来源: http://blog.csdn.net/faye0412/article/details/7037078 一个Applet的项目,在客户端无论使用什么浏览器都无法正常运行,我检查了一下,异常信息如下: java.security.AccessControlException: access denied (java.io.FilePermission ALL FILES,

原文来源: http://blog.csdn.net/faye0412/article/details/7037078

一个Applet的项目,在客户端无论使用什么浏览器都无法正常运行,我检查了一下,异常信息如下:
java.security.AccessControlException: access denied (java.io.FilePermission ">", "execute")...
.....


这个问题在开发的时候也曾经遇到过,后来签名后解决了,但是最近为啥又冒出来了呢?奇怪....

我又找了N台机器,不同版本的浏览器(ie7,8,9...Cheome, Firefox....)都测了一遍发现一个问题:

1. 与浏览器无关,而是与jre的版本有关;

2. jre版本高于1.6.0_20的都不能正常运行,低于该版本的都可以正常运行(我的是JRE 版本 1.6.0_29-b11,不能运行);


如何解决呢?于是我找了Oracle里N多相关的文档,比如:

http://java.sun.com/developer/onlineTraining/Programming/JDCBook/signed.html(签名Applet)

http://docs.oracle.com/javase/1.4.2/docs/guide/security/permissions.html(Permissions in the JavaTM 2 SDK)


等等,都没啥进展。我尝试了如下方法:

1. 定义私有policy文件的方法;

2. 修改Java默认安全策略文件(不太安全), ${java.home}/lib/security/java.security文件,增加授权方式;


都没起作用(可能是我没弄对?),但是我们不能让每一个客户都去修改他们自己的安全策略文件,毕竟不是每一个人都那么专业,客户也不会愿意接受这种方式的。


问题解决:

后来在翻阅文档后发现了一个重要的方法,可以很快速的解决我的问题,那就是:使用AccessController.doPrivileged提升代码权限!如果不期望客户端修改JRE中的安全配置,可以选择在代码中提升,而这个就是我所期待的!

在客户端弹出的jdk的对话框中只要用户点击信任,运行按钮,也就是说如果信任此签名,将可以执行此代码:AccessController.doPrivileged(...),Applet权限也将得到提升。


具体示例代码如下:

[java] view plaincopy

  1. private String runCmd(){  
  2.     String result = AccessController.doPrivileged(new PrivilegedAction() {    
  3.         @Override    
  4.         public String run() {  
  5.                 String res = null;  
  6.         //TODO like 'Runtime.getRuntime().exec(cmd)' etc.....  
  7.                 return res;    
  8.             }  
  9.         });  
  10.     return result;  
  11. }  

就这样,简单的几句话就搞定了。。。。

别忘了,最后需要做的是重新打jar包,签名,然后将证书和keystore文件,jar文件重新发布到服务器测试:)


补充:

之前也曾写过一篇文章《关于JS调用Applet的执行权限的问题》(http://blog.csdn.net/faye0412/article/details/4566400),里面提到了使用SwingUtilities.invokeLater(new Runnable()...的方式,但是这种方法只能解决之前的签名和Applet假死的情况,不能解决现在遇到的这种情况,所以,最好的方式是结合这两种方法使用。问题完美解决!!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So überprüfen Sie die Signatur in PDF So überprüfen Sie die Signatur in PDF Feb 18, 2024 pm 05:33 PM

Normalerweise erhalten wir PDF-Dateien von der Regierung oder anderen Behörden, teilweise mit digitalen Signaturen. Nach der Überprüfung der Signatur sehen wir die Meldung SignatureValid und ein grünes Häkchen. Wenn die Signatur nicht überprüft wird, ist die Gültigkeit unbekannt. Die Überprüfung von Signaturen ist wichtig. Sehen wir uns an, wie das im PDF-Format geht. So überprüfen Sie Signaturen im PDF-Format. Durch die Überprüfung von Signaturen im PDF-Format wird das Dokument vertrauenswürdiger und die Wahrscheinlichkeit erhöht, dass es akzeptiert wird. Sie können Signaturen in PDF-Dokumenten auf folgende Weise überprüfen. Öffnen Sie die PDF-Datei im Adobe Reader. Klicken Sie mit der rechten Maustaste auf die Signatur und wählen Sie „Signatureigenschaften anzeigen“. Klicken Sie auf die Schaltfläche „Unterzeichnerzertifikat anzeigen“. Fügen Sie die Signatur auf der Registerkarte „Vertrauen“ zur Liste „Vertrauenswürdige Zertifikate“ hinzu. Klicken Sie auf „Signatur überprüfen“, um die Überprüfung abzuschließen

Was sind die häufigsten Ursachen für OutOfMemoryError-Ausnahmen in Java? Was sind die häufigsten Ursachen für OutOfMemoryError-Ausnahmen in Java? Jun 25, 2023 pm 08:43 PM

Java ist eine der am weitesten verbreiteten Programmiersprachen, aber bei der Entwicklung von Anwendungen mit Java kann es leicht zu „OutOfMemoryError“-Ausnahmefehlern kommen, die für Entwickler oft eine Herausforderung darstellen. Was genau verursacht die OutOfMemoryError-Ausnahme in Java? Als nächstes erfahren wir mehr darüber. Speicherverlust (MemoryLeak) Speicherverlust bezieht sich darauf, dass ein Objekt, wenn es vom Garbage Collector nicht recycelt werden kann, einen Speicherverlust verursacht.

Die Outlook-Signatur verschwindet jeden Tag nach dem Neustart Die Outlook-Signatur verschwindet jeden Tag nach dem Neustart Feb 19, 2024 pm 05:24 PM

Eine E-Mail-Signatur ist wichtig, um Legitimität und Professionalität zu demonstrieren und enthält Kontaktinformationen und das Firmenlogo. Outlook-Benutzer beschweren sich häufig darüber, dass Signaturen nach dem Neustart verschwinden, was für diejenigen, die die Sichtbarkeit ihres Unternehmens erhöhen möchten, frustrierend sein kann. In diesem Artikel werden wir verschiedene Lösungen zur Behebung dieses Problems untersuchen. Warum verschwinden meine Microsoft Outlook-Signaturen immer wieder? Wenn Sie Microsoft Outlook zum ersten Mal verwenden, stellen Sie sicher, dass es sich bei Ihrer Version nicht um eine Testversion handelt. Testversionen können dazu führen, dass Signaturen verschwinden. Darüber hinaus sollte die Versionsarchitektur auch mit der Versionsarchitektur des Betriebssystems übereinstimmen. Wenn Sie feststellen, dass Ihre E-Mail-Signatur von Zeit zu Zeit in Outlook Web App verschwindet, kann dies daran liegen

So lösen Sie eine Java-Thread-Interrupt-Timeout-Ausnahme (ThreadInterruptedTimeoutExceotion) So lösen Sie eine Java-Thread-Interrupt-Timeout-Ausnahme (ThreadInterruptedTimeoutExceotion) Aug 18, 2023 pm 01:57 PM

So lösen Sie die Java-Thread-Interrupt-Timeout-Ausnahme (ThreadInterruptedTimeoutException). Bei der Java-Multithread-Programmierung stoßen wir häufig auf Situationen, in denen die Thread-Ausführungszeit zu lang ist. Um zu verhindern, dass Threads zu viele Systemressourcen belegen, legen wir normalerweise ein Timeout fest. Wenn die Thread-Ausführungszeit das Timeout überschreitet, hoffen wir, die Ausführung des Threads zu unterbrechen. Java bietet einen Thread-Unterbrechungsmechanismus, indem Sie die Methode interrupt() des Threads aufrufen

Methoden zur Lösung der Java-Reflektionsausnahme (ReflectiveOperationException) Methoden zur Lösung der Java-Reflektionsausnahme (ReflectiveOperationException) Aug 26, 2023 am 09:55 AM

Methoden zum Lösen von Java-Reflektionsausnahmen (ReflectiveOperationException) In der Java-Entwicklung ist Reflektion (Reflection) ein leistungsstarker Mechanismus, der es Programmen ermöglicht, Klassen, Objekte, Methoden, Eigenschaften usw. zur Laufzeit dynamisch abzurufen und zu betreiben. Durch Reflexion können wir einige flexible Funktionen implementieren, z. B. das dynamische Erstellen von Objekten, das Aufrufen privater Methoden, das Abrufen von Klassenanmerkungen usw. Allerdings birgt die Verwendung von Reflexion auch einige potenzielle Risiken und Probleme, darunter Reflexionsanomalien (

Ein Leitfaden zu den ungewöhnlichen Missionen im Rise of Ronin Pool Ein Leitfaden zu den ungewöhnlichen Missionen im Rise of Ronin Pool Mar 26, 2024 pm 08:06 PM

Die Abnormalität im Pool ist eine Nebenaufgabe im Spiel. Viele Spieler möchten wissen, wie sie die Abnormalität im Pool erledigen können. Zuerst müssen wir die Technik des Schießens im Wasser beherrschen Die Aufgabe und die Untersuchung der Quelle des Gestanks. Später stellten wir fest, dass sich unter dem Pool viele Leichen befinden. Werfen wir einen Blick auf diese grafische Anleitung für die ungewöhnlichen Aufgaben im Pool in Rise of Ronin. Leitfaden für ungewöhnliche Missionen im Ronin Rise Pool: 1. Sprechen Sie mit Iizuka und lernen Sie die Technik des Schießens im Wasser. 2. Gehen Sie zum Ort im Bild unten, um die abnormale Aufgabe im Pool zu erhalten. 3. Gehen Sie zum Missionsort, sprechen Sie mit dem NPC und erfahren Sie, dass im nahegelegenen Pool ein übler Geruch herrscht. 4. Gehen Sie zum Pool, um nachzuforschen. 5. Schwimmen Sie zum Ort im Bild unten, tauchen Sie unter Wasser und Sie werden viele Leichen finden. 6. Machen Sie mit einer Kamera Fotos von der Leiche. 7

Das neueste Meisterwerk des MIT: Verwendung von GPT-3.5 zur Lösung des Problems der Erkennung von Zeitreihenanomalien Das neueste Meisterwerk des MIT: Verwendung von GPT-3.5 zur Lösung des Problems der Erkennung von Zeitreihenanomalien Jun 08, 2024 pm 06:09 PM

Heute möchte ich Ihnen einen letzte Woche vom MIT veröffentlichten Artikel vorstellen, in dem GPT-3.5-turbo verwendet wird, um das Problem der Erkennung von Zeitreihenanomalien zu lösen, und zunächst die Wirksamkeit von LLM bei der Erkennung von Zeitreihenanomalien überprüft wird. Im gesamten Prozess gibt es keine Feinabstimmung, und GPT-3.5-Turbo wird direkt zur Anomalieerkennung verwendet. Der Kern dieses Artikels besteht darin, wie man Zeitreihen in Eingaben umwandelt, die von GPT-3.5-Turbo erkannt werden können, und wie man sie entwirft Eingabeaufforderungen oder Pipelines, damit LLM die Anomalieerkennungsaufgabe lösen kann. Lassen Sie mich Ihnen diese Arbeit im Detail vorstellen. Titel des Bildpapiers: Largelingualmodelscanbezero-shotanomalydete

Praktische Tipps zum effizienten Lösen von Ausnahmen beim Lesen großer Java-Dateien Praktische Tipps zum effizienten Lösen von Ausnahmen beim Lesen großer Java-Dateien Feb 21, 2024 am 10:54 AM

Praktische Tipps zum effizienten Beheben von Leseausnahmen bei großen Dateien in Java erfordern spezifische Codebeispiele. Übersicht: Bei der Verarbeitung großer Dateien kann es in Java zu Problemen wie Speicherüberlauf und Leistungseinbußen kommen. In diesem Artikel werden verschiedene praktische Techniken zur effektiven Lösung von Ausnahmen beim Lesen großer Java-Dateien vorgestellt und spezifische Codebeispiele bereitgestellt. Hintergrund: Bei der Verarbeitung großer Dateien müssen wir möglicherweise den Dateiinhalt zur Verarbeitung in den Speicher einlesen, z. B. zum Suchen, Analysieren, Extrahieren und für andere Vorgänge. Wenn die Datei jedoch groß ist, treten häufig die folgenden Probleme auf: Speicherüberlauf: Es wird versucht, die gesamte Datei auf einmal zu kopieren

See all articles