Advertisement

01.22.2008 at 03:00AM PST, ID: 23100732
[x]
Attachment Details

How to set catalina.policy permissions with Netbeans 6 bundled Tomcat to access MySQL ?

Asked by emsttam in Apache Tomcat Application Server, MySQL Server, NetBeans IDE

Tags: , , , ,

I have a working webapp called ExamOnline, developed under Netbeans 6. Netbeans creates a war file for the project (called ExamOnline.war), which deploys and runs happily on the bundled Tomcat 6.0.14 server.

The webapp connects to a MySQL database with no problem. The project uses the Connector/J driver, which is contained in the mysql-connector-java-5.0.6-bin.jar file. Netbeans includes this jar file in the ExamOnline.war file, in the directory WEB-INF\lib

I am now trying to get the webapp to run with the Tomcat security manager enabled. The error I get is :

com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Server connection failure during transaction. Due to underlying exception: 'java.security.AccessControlException: access denied (java.net.SocketPermission localhost resolve)'.

** BEGIN NESTED EXCEPTION **

java.security.AccessControlException
MESSAGE: access denied (java.net.SocketPermission localhost resolve)

STACKTRACE:

java.security.AccessControlException: access denied (java.net.SocketPermission localhost resolve)
        at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
        at java.security.AccessController.checkPermission(AccessController.java:546)
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
        at java.lang.SecurityManager.checkConnect(SecurityManager.java:1031)
        at java.net.InetAddress.getAllByName0(InetAddress.java:1145)
        at java.net.InetAddress.getAllByName(InetAddress.java:1083)
        at java.net.InetAddress.getAllByName(InetAddress.java:1019)
        at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:163)
        at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:268)
        at com.mysql.jdbc.Connection.createNewIO(Connection.java:2894)
        at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
        at java.sql.DriverManager.getConnection(DriverManager.java:582)
        at java.sql.DriverManager.getConnection(DriverManager.java:185)
        at examonline.DbConnection.<init>(DbConnection.java:24)
      <remainder deleted>


I believe that , I have to set the catalina.policy permissions for the webapp, but am having no luck. The entries I have tried so far are :


grant codeBase "file:${catalina.home}/webapps/ExamOnline/WEB-INF/lib/com/mysql/jdbc/-" {
      permission java.security.AllPermission;
      permission java.net.SocketPermission "127.0.0.1", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "127.0.0.1:25", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost:25", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "127.0.0.1:3306", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost:3306", "listen,connect,accept,resolve";};

grant codeBase "file:${catalina.home}/webapps/examonline/WEB-INF/lib/com/mysql/jdbc/-" {
      permission java.security.AllPermission;
      permission java.net.SocketPermission "127.0.0.1", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "127.0.0.1:25", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost:25", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "127.0.0.1:3306", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost:3306", "listen,connect,accept,resolve";};

grant codeBase "jar:file:${catalina.home}/webapps/ExamOnline/WEB-INF/lib/mysql-connector-java-5.0.6-bin.jar!/-" {
      permission java.security.AllPermission;
      permission java.net.SocketPermission "127.0.0.1", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "127.0.0.1:25", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost:25", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "127.0.0.1:3306", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost:3306", "listen,connect,accept,resolve";};

grant codeBase "jar:file:${catalina.home}/webapps/examonline/WEB-INF/lib/mysql-connector-java-5.0.6-bin.jar!/-" {
      permission java.security.AllPermission;
      permission java.net.SocketPermission "127.0.0.1", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "127.0.0.1:25", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost:25", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "127.0.0.1:3306", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost:3306", "listen,connect,accept,resolve";};

grant codeBase "file:/Documents and Settings/Tom/.netbeans/6.0/jdbc-drivers/com/mysql/jdbc/-" {
      permission java.security.AllPermission;
      permission java.net.SocketPermission "127.0.0.1", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "127.0.0.1:25", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost:25", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "127.0.0.1:3306", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost:3306", "listen,connect,accept,resolve";};

grant codeBase "jar:file:/Documents and Settings/Tom/.netbeans/6.0/jdbc-drivers/mysql-connector-java-5.0.6-bin.jar!/-" {
      permission java.security.AllPermission;
      permission java.net.SocketPermission "127.0.0.1", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "127.0.0.1:25", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost:25", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "127.0.0.1:3306", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost:3306", "listen,connect,accept,resolve";};

grant codeBase "file:${catalina.home}/webapps/ExamOnline/WEB-INF/lib/com/mysql/jdbc/*" {
      permission java.security.AllPermission;
      permission java.net.SocketPermission "127.0.0.1", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "127.0.0.1:25", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost:25", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "127.0.0.1:3306", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost:3306", "listen,connect,accept,resolve";};

grant codeBase "file:${catalina.home}/webapps/examonline/WEB-INF/lib/com/mysql/jdbc/*" {
      permission java.security.AllPermission;
      permission java.net.SocketPermission "127.0.0.1", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "127.0.0.1:25", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost:25", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "127.0.0.1:3306", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost:3306", "listen,connect,accept,resolve";};

grant codeBase "file:${catalina.home}/webapps/ExamOnline/WEB-INF/lib/*" {
      permission java.security.AllPermission;
      permission java.net.SocketPermission "127.0.0.1", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "127.0.0.1:25", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost:25", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "127.0.0.1:3306", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost:3306", "listen,connect,accept,resolve";};

grant codeBase "file:${catalina.home}/webapps/examonline/WEB-INF/lib/*" {
      permission java.security.AllPermission;
      permission java.net.SocketPermission "127.0.0.1", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "127.0.0.1:25", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost:25", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "127.0.0.1:3306", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost:3306", "listen,connect,accept,resolve";};

grant codeBase "file:${catalina.home}/webapps/ExamOnline/-" {
      permission java.security.AllPermission;
      permission java.net.SocketPermission "127.0.0.1", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "127.0.0.1:25", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost:25", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "127.0.0.1:3306", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost:3306", "listen,connect,accept,resolve";};

grant codeBase "file:${catalina.home}/webapps/examonline/-" {
      permission java.security.AllPermission;
      permission java.net.SocketPermission "127.0.0.1", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "127.0.0.1:25", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost:25", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "127.0.0.1:3306", "listen,connect,accept,resolve";
      permission java.net.SocketPermission "localhost:3306", "listen,connect,accept,resolve";};


Does anyone know what entries I actually need in the catalina.policy file ? As an aside, I have found a catalina.policy file in two places :

C:\Documents and Settings\Tom\.netbeans\6.0\apache-tomcat-6.0.14_base\conf
and
C:\Program Files\Apache Software Foundation\Apache Tomcat 6.0.14\conf

so knowing which version is used would be a good start. Thanks in advance.Start Free Trial
 
Loading Advertisement...
 
[+][-]01.24.2008 at 01:24AM PST, ID: 20731750

View this solution now by starting your 7-day free trial. Setting up your free trial is quick, easy, and secure. We will return you to this solution, unlocked, when you're done.

 

About this solution

Zones: Apache Tomcat Application Server, MySQL Server, NetBeans IDE
Tags: netbeans.org, Netbeans, 6, with bundled Tomcat 6.0.14, Java
Sign Up Now!
Solution Provided By: girionis
Participating Experts: 1
Solution Grade: B
 
 
[+][-]01.24.2008 at 03:49AM PST, ID: 20732104

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 7-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]01.24.2008 at 04:03AM PST, ID: 20732169

Assisted solutions are selected by the member who asked the question as a comment that contributed to their question's solution.

Start your 7-day free trial to view this Assisted Solution or ask the Experts your question.

 
 
Loading Advertisement...
20080716-EE-VQP-32 / EE_QW_2_20070628