java derby 用户安全_Java 7u51安全权限变化,运行derby server被拒,解决方法
本文參考的文章:外鏈網址已屏蔽
今天運行Derby數據庫的服務器時,出現以下問題:
access?denied?(".SocketPermission"?"localhost:1527"?"listen,resolve")
原因是:
Java 7u51版安全管理器的默認權限有變化,之前允許綁定>1024的端口,現在下限更高。所以derby使用的1527端口被拒絕綁定。
相關變化的官方說明:外鏈網址已屏蔽
解決辦法:
需要在$JAVA_HOME/jre/lib/security文件夾下的java.policy文件中相應位置添加一行(可能需要管理員權限才能修改該文件),以允許綁定相應端口:
grant?{
...
permission?.SocketPermission?"localhost:1527",?"listen,resolve";
}
附:報錯的具體內容,和我的java版本
C:\Users\**>java?-version
java?version?"1.7.0_51"
Java(TM)?SE?Runtime?Environment?(build?1.7.0_51-b13)
Java?HotSpot(TM)?64-Bit?Server?VM?(build?24.51-b03,?mixed?mode)
C:\Users\**>java?-jar?%DERBY_HOME%\lib\derbyrun.jar?server?start
Fri?Feb?14?21:01:07?CST?2014?:?已使用基本服務器安全策略安裝了?Security?Manager。
Fri?Feb?14?21:01:12?CST?2014?:?access?denied?(".SocketPermission"?"local
host:1527"?"listen,resolve")
java.security.AccessControlException:?access?denied?(".SocketPermission"
"localhost:1527"?"listen,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.checkListen(Unknown?Source)
at?.ServerSocket.bind(Unknown?Source)
at?.ServerSocket.(Unknown?Source)
at?.DefaultServerSocketFactory.createServerSocket(Unknown?Sourc
e)
at?workServerControlImpl.createServerSocke
t(Unknown?Source)
at?workServerControlImpl.access$000(Unknow
n?Source)
at?workServerControlImpl$1.run(Unknown?Sou
rce)
at?workServerControlImpl$1.run(Unknown?Sou
rce)
at?java.security.AccessController.doPrivileged(Native?Method)
at?workServerControlImpl.blockingStart(Unk
nown?Source)
at?workServerControlImpl.executeWork(Unkno
wn?Source)
at?workServerControl.main(Unknown?Source)
at?org.apache.derby.iapi.tools.run.main(Unknown?Source)
總結
以上是生活随笔為你收集整理的java derby 用户安全_Java 7u51安全权限变化,运行derby server被拒,解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 股票市值大好还是小好 根据不同方面进行
- 下一篇: eclipse java 程序调试_使用