1. 电脑软件
  2. 安卓
  3. 驱动
  4. 游戏
  5. 文章
当前位置: 钱柜娱乐官方网站编程开发Java → servlet域名通讯时与applet的安全问题分析

servlet域名通讯时与applet的安全问题分析

2011/4/28 12:48:15  出处:本站   人气:177次    字号:    
更多
web应用中的一个jsp页面的applet需要与服务器端的servlet通讯,直接ip,159.226.2.133,访问这一web应用的jsp页面,applet与servlet间的通信没问题。
但我通过域名,如http://www.abc.com来访问这一应用,调用jsp页面时,applet会报如下错误:
access denied (java.net.SocketPermission 159.226.2.133:80 connect,resolve)
java.security.AccessControlException: access denied (java.net.SocketPermission 159.226.2.133:80 connect,resolve)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkConnect(Unknown Source)
at sun.plugin2.applet.Applet2SecurityManager.checkConnect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.<init>(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)

也就是说applet与后台servlet连接时是通过ip连接的,而applet现在是出于域名环境下,这样就造成了applet跨域访问,破坏java安全性的情况。
从网上搜索,大家一般都是在客户端jre中做些修改,或进行数字签名,来解决applet跨域访问问题。

大家有什么办法能避免造成applet跨域访问呢,因为实际上applet和web应用都是在一个环境下的,只是由于将这一应用放在了域名下,造成这种问题的
现在getHost()方法是能够获得域名的,但不知道为啥连接时applet总报上面提到的applet安全问题
热门评论
最新评论
昵称:
表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
字数: 0/500 (您的评论需要经过审核才能显示)

钱柜娱乐官方网站

百度360搜索搜狗搜索