Applet虽签名,但是异常:java.security.AccessControlException
原文来源: 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
- private String runCmd(){
-
String result = AccessController.doPrivileged(new PrivilegedAction
() { - @Override
- public String run() {
- String res = null;
- //TODO like 'Runtime.getRuntime().exec(cmd)' etc.....
- return res;
- }
- });
- return result;
- }
就这样,简单的几句话就搞定了。。。。
别忘了,最后需要做的是重新打jar包,签名,然后将证书和keystore文件,jar文件重新发布到服务器测试:)
补充:
之前也曾写过一篇文章《关于JS调用Applet的执行权限的问题》(http://blog.csdn.net/faye0412/article/details/4566400),里面提到了使用SwingUtilities.invokeLater(new Runnable()...的方式,但是这种方法只能解决之前的签名和Applet假死的情况,不能解决现在遇到的这种情况,所以,最好的方式是结合这两种方法使用。问题完美解决!!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds





Nous recevons généralement des fichiers PDF du gouvernement ou d'autres agences, certains avec des signatures numériques. Après avoir vérifié la signature, nous voyons le message SignatureValid et une coche verte. Si la signature n'est pas vérifiée, la validité est inconnue. La vérification des signatures est importante, voyons comment le faire en PDF. Comment vérifier les signatures au format PDF La vérification des signatures au format PDF le rend plus fiable et le document est plus susceptible d'être accepté. Vous pouvez vérifier les signatures dans les documents PDF des manières suivantes. Ouvrez le PDF dans Adobe Reader Cliquez avec le bouton droit sur la signature et sélectionnez Afficher les propriétés de la signature Cliquez sur le bouton Afficher le certificat du signataire Ajoutez la signature à la liste des certificats de confiance à partir de l'onglet Confiance Cliquez sur Vérifier la signature pour terminer la vérification.

Java est l'un des langages de programmation les plus utilisés, mais lors du développement d'applications utilisant Java, il est facile de rencontrer des erreurs d'exception « OutOfMemoryError », qui posent souvent des défis aux développeurs. Qu'est-ce qui cause exactement l'exception OutOfMemoryError en Java ? Ensuite, apprenons-en davantage. Fuite de mémoire (MemoryLeak) La fuite de mémoire fait référence au moment où un objet ne peut pas être recyclé par le ramasse-miettes, cela provoquera une fuite de mémoire.

Une signature électronique est importante pour démontrer la légitimité et le professionnalisme et comprend les coordonnées et le logo de l'entreprise. Les utilisateurs d'Outlook se plaignent souvent de la disparition des signatures après le redémarrage, ce qui peut être frustrant pour ceux qui cherchent à accroître la visibilité de leur entreprise. Dans cet article, nous explorerons différents correctifs pour résoudre ce problème. Pourquoi mes signatures Microsoft Outlook continuent-elles de disparaître ? Si vous utilisez Microsoft Outlook pour la première fois, assurez-vous que votre version n'est pas une version d'essai. Les versions d'essai peuvent entraîner la disparition des signatures. De plus, l’architecture des versions doit également correspondre à l’architecture des versions du système d’exploitation. Si vous constatez que votre signature électronique disparaît de temps en temps dans Outlook Web App, cela peut être dû à

Comment résoudre l'exception de délai d'attente d'interruption du thread Java (ThreadInterruptedTimeoutException). Dans la programmation multithread Java, nous rencontrons souvent des situations où le temps d'exécution du thread est trop long. Afin d'éviter que les threads n'occupent trop de ressources système, nous définissons généralement un délai d'attente. Lorsque le temps d'exécution du thread dépasse le délai d'attente, nous espérons pouvoir interrompre l'exécution du thread. Java fournit un mécanisme d'interruption de thread En appelant la méthode interruption() du thread, vous pouvez.

Méthodes pour résoudre les exceptions de réflexion Java (ReflectiveOperationException) Dans le développement Java, la réflexion (Reflection) est un mécanisme puissant qui permet aux programmes d'obtenir et d'exploiter dynamiquement des classes, des objets, des méthodes, des propriétés, etc. Grâce à la réflexion, nous pouvons implémenter certaines fonctions flexibles, telles que la création dynamique d'objets, l'appel de méthodes privées, l'obtention d'annotations de classe, etc. Cependant, l'utilisation de la réflexion entraîne également certains risques et problèmes potentiels, parmi lesquels les anomalies de réflexion (

L'anomalie dans la piscine est une tâche secondaire du jeu. De nombreux joueurs veulent savoir comment réaliser l'anomalie dans la tâche de la piscine. Tout d'abord, nous devons maîtriser la technique du tir dans l'eau avant de pouvoir l'accepter. La tâche et enquêtez sur la source de la puanteur. Plus tard, nous avons découvert qu'il y a beaucoup de cadavres sous la piscine. Jetons un coup d'œil à ce guide graphique pour les tâches inhabituelles dans la piscine dans Rise of Ronin. Guide des missions insolites dans le Ronin Rise Pool : 1. Parlez à Iizuka et apprenez la technique du tir dans l'eau. 2. Rendez-vous à l'emplacement indiqué dans l'image ci-dessous pour recevoir la tâche anormale dans le pool. 3. Allez sur le lieu de la mission, parlez au PNJ et apprenez qu'il y a une odeur nauséabonde dans la piscine voisine. 4. Allez à la piscine pour enquêter. 5. Nagez jusqu'à l'endroit indiqué sur l'image ci-dessous, plongez sous l'eau et vous trouverez de nombreux cadavres. 6. Utilisez un appareil photo pour prendre des photos du cadavre. 7

Aujourd'hui, j'aimerais vous présenter un article publié par le MIT la semaine dernière, utilisant GPT-3.5-turbo pour résoudre le problème de la détection des anomalies des séries chronologiques et vérifiant dans un premier temps l'efficacité du LLM dans la détection des anomalies des séries chronologiques. Il n'y a pas de réglage fin dans l'ensemble du processus et GPT-3.5-turbo est utilisé directement pour la détection des anomalies. Le cœur de cet article est de savoir comment convertir des séries temporelles en entrées pouvant être reconnues par GPT-3.5-turbo et comment concevoir. des invites ou des pipelines pour laisser LLM résoudre la tâche de détection des anomalies. Permettez-moi de vous présenter une introduction détaillée à ce travail. Titre de l'article image : Largelangagemodelscanbezero-shotanomalydete

Des conseils pratiques pour résoudre efficacement les exceptions de lecture de fichiers volumineux en Java nécessitent des exemples de code spécifiques Présentation : Lors du traitement de fichiers volumineux, Java peut être confronté à des problèmes tels qu'un débordement de mémoire et une dégradation des performances. Cet article présentera plusieurs techniques pratiques pour résoudre efficacement les exceptions de lecture de fichiers volumineux Java et fournira des exemples de code spécifiques. Contexte : lors du traitement de fichiers volumineux, nous pouvons avoir besoin de lire le contenu du fichier en mémoire pour le traitement, tel que la recherche, l'analyse, l'extraction et d'autres opérations. Cependant, lorsque le fichier est volumineux, les problèmes suivants sont souvent rencontrés : Débordement de mémoire : tentative de copier l'intégralité du fichier en une seule fois.
