데이터 베이스 MySQL 튜토리얼 Applet虽签名,但是异常:java.security.AccessControlException

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

Jun 07, 2016 pm 03:42 PM
하지만 이상 징후

原文来源: 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假死的情况,不能解决现在遇到的这种情况,所以,最好的方式是结合这两种方法使用。问题完美解决!!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PDF에서 서명을 확인하는 방법 PDF에서 서명을 확인하는 방법 Feb 18, 2024 pm 05:33 PM

우리는 일반적으로 정부나 기타 기관으로부터 PDF 파일을 받으며, 일부는 디지털 서명이 포함되어 있습니다. 서명을 확인한 후 SignatureValid 메시지와 녹색 확인 표시가 표시됩니다. 서명이 확인되지 않으면 유효성을 알 수 없습니다. 서명을 확인하는 것이 중요합니다. PDF에서 이를 수행하는 방법을 살펴보겠습니다. PDF에서 서명을 확인하는 방법 PDF 형식의 서명을 확인하면 더욱 신뢰할 수 있고 문서가 승인될 가능성이 높아집니다. 다음과 같은 방법으로 PDF 문서의 서명을 확인할 수 있습니다. Adobe Reader에서 PDF를 엽니다. 서명을 마우스 오른쪽 버튼으로 클릭하고 서명 속성 표시를 선택합니다. 서명자 인증서 표시 버튼을 클릭합니다. 신뢰 탭에서 신뢰할 수 있는 인증서 목록에 서명을 추가합니다. 서명 확인을 클릭하여 확인을 완료합니다.

Java에서 OutOfMemoryError 예외의 일반적인 원인은 무엇입니까? Java에서 OutOfMemoryError 예외의 일반적인 원인은 무엇입니까? Jun 25, 2023 pm 08:43 PM

Java는 가장 널리 사용되는 프로그래밍 언어 중 하나이지만 Java를 사용하여 애플리케이션을 개발할 때 "OutOfMemoryError" 예외 오류가 발생하기 쉬우며, 이는 개발자에게 종종 어려움을 안겨줍니다. Java에서 OutOfMemoryError 예외가 발생하는 정확한 원인은 무엇입니까? 다음으로 이에 대해 자세히 알아보겠습니다. 메모리 누수(MemoryLeak) 메모리 누수는 가비지 수집기에서 객체를 재활용할 수 없는 경우를 의미하며 이로 인해 메모리 누수가 발생합니다.

다시 시작한 후 Outlook 서명이 매일 사라집니다. 다시 시작한 후 Outlook 서명이 매일 사라집니다. Feb 19, 2024 pm 05:24 PM

이메일 서명은 합법성과 전문성을 입증하는 데 중요하며 연락처 정보와 회사 로고를 포함합니다. Outlook 사용자는 다시 시작한 후에 서명이 사라진다고 불평하는 경우가 많습니다. 이는 회사의 가시성을 높이려는 사람들에게 실망스러울 수 있습니다. 이 기사에서는 이 문제를 해결하기 위한 다양한 수정 방법을 살펴보겠습니다. Microsoft Outlook 서명이 계속 사라지는 이유는 무엇입니까? Microsoft Outlook을 처음 사용하는 경우 해당 버전이 평가판이 아닌지 확인하세요. 평가판 버전을 사용하면 서명이 사라질 수 있습니다. 또한 버전 아키텍처는 운영 체제의 버전 아키텍처와도 일치해야 합니다. Outlook Web App에서 이메일 서명이 때때로 사라지는 경우 다음과 같은 이유 때문일 수 있습니다.

Java 스레드 인터럽트 시간 초과 예외를 해결하는 방법(ThreadInterruptedTimeoutExceotion) Java 스레드 인터럽트 시간 초과 예외를 해결하는 방법(ThreadInterruptedTimeoutExceotion) Aug 18, 2023 pm 01:57 PM

Java 스레드 인터럽트 시간 초과 예외(ThreadInterruptedTimeoutException)를 해결하는 방법 Java 다중 스레드 프로그래밍에서는 스레드 실행 시간이 너무 긴 상황이 자주 발생합니다. 스레드가 너무 많은 시스템 자원을 점유하는 것을 방지하기 위해 우리는 일반적으로 타임아웃을 설정합니다. 스레드 실행 시간이 타임아웃을 초과하면 스레드 실행을 중단할 수 있기를 바랍니다. Java는 스레드의 Interrupt() 메소드를 호출하여 스레드 중단 메커니즘을 제공합니다.

Java 반사 예외(ReflectiveOperationException)를 해결하는 방법 Java 반사 예외(ReflectiveOperationException)를 해결하는 방법 Aug 26, 2023 am 09:55 AM

Java 리플렉션 예외(ReflectiveOperationException)를 해결하는 방법 Java 개발에서 리플렉션(Reflection)은 프로그램이 런타임 시 클래스, 개체, 메서드, 속성 등을 동적으로 획득하고 작동할 수 있도록 하는 강력한 메커니즘입니다. 리플렉션을 통해 동적으로 객체 생성, 프라이빗 메서드 호출, 클래스 주석 획득 등과 같은 유연한 기능을 구현할 수 있습니다. 그러나 리플렉션을 사용하면 잠재적인 위험과 문제가 발생할 수도 있으며, 그 중 하나는 리플렉션 이상입니다(

로닌 라이즈 풀의 특이한 미션 가이드 로닌 라이즈 풀의 특이한 미션 가이드 Mar 26, 2024 pm 08:06 PM

수영장의 이상 현상은 게임의 부수적인 작업입니다. 많은 플레이어들이 수영장 작업의 이상 현상을 완료하는 방법을 알고 싶어합니다. 먼저, 물 속에서의 사격 기술을 익혀야 합니다. 나중에 우리는 수영장 아래에 많은 시체가 있다는 것을 발견했습니다. Rise of Ronin의 수영장에서 특이한 작업에 대한 이 그래픽 가이드를 살펴보겠습니다. Ronin Rise Pool의 특이한 임무 안내: 1. Iizuka와 대화하고 물 속에서 사격하는 기술을 배웁니다. 2. 풀에서 비정상적인 태스크를 받으려면 아래 그림의 위치로 이동하세요. 3. 미션 장소로 이동하여 NPC에게 말을 걸면, 근처 수영장에서 악취가 난다는 것을 알게 됩니다. 4. 조사를 위해 수영장으로 이동합니다. 5. 아래 사진의 위치로 수영하여 수중 다이빙을 하면 시체를 많이 발견하게 됩니다. 6. 카메라를 이용해 시체 사진을 찍어보세요. 7

MIT의 최신 걸작: GPT-3.5를 사용하여 시계열 이상 탐지 문제 해결 MIT의 최신 걸작: GPT-3.5를 사용하여 시계열 이상 탐지 문제 해결 Jun 08, 2024 pm 06:09 PM

오늘은 지난 주 MIT에서 발표한 기사를 소개하고자 합니다. GPT-3.5-turbo를 사용하여 시계열 이상 탐지 문제를 해결하고, 시계열 이상 탐지에서 LLM의 효율성을 초기에 검증한 내용입니다. 전체 과정에 미세한 조정은 없으며, 이상 탐지를 위해 GPT-3.5-turbo를 직접 사용하는 것이 이 글의 핵심이다. LLM이 이상 탐지 작업을 해결하도록 하는 프롬프트 또는 파이프라인입니다. 이 작품을 자세히 소개하겠습니다. 이미지 논문 제목: Large Languagemodelscanbezero-shotanomalydete

Java 대용량 파일 읽기 예외를 효율적으로 해결하기 위한 실용적인 팁 Java 대용량 파일 읽기 예외를 효율적으로 해결하기 위한 실용적인 팁 Feb 21, 2024 am 10:54 AM

Java에서 대용량 파일 읽기 예외를 효율적으로 해결하기 위한 실용적인 팁에는 특정 코드 예제가 필요합니다. 개요: 대용량 파일을 처리할 때 Java는 메모리 오버플로 및 성능 저하와 같은 문제에 직면할 수 있습니다. 이 기사에서는 Java 대용량 파일 읽기 예외를 효과적으로 해결하기 위한 몇 가지 실용적인 기술을 소개하고 구체적인 코드 예제를 제공합니다. 배경: 대용량 파일을 처리할 때 검색, 분석, 추출 및 기타 작업과 같은 처리를 위해 파일 내용을 메모리로 읽어야 할 수도 있습니다. 그러나 파일이 큰 경우에는 다음과 같은 문제가 자주 발생합니다. 메모리 오버플로: 전체 파일을 한 번에 복사하려고 합니다.

See all articles