grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
.....
permission java.util.logging.LoggingPermission "control";
.....
}
and I get this issue
Class: class java.lang.StackTraceElement
File Name: UcanaccessDriver.java
Line Number: 231
Method Name: connect
Class Name: net.ucanaccess.jdbc.UcanaccessDriver
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::5.0.1 access denied
("java.util.logging.LoggingPermission" "control")
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::5.0.1 access denied
("java.util.logging.LoggingPermission" "control")
at
net.ucanaccess.jdbc.UcanaccessDriver.connect(UcanaccessDriver.java:231)
at
java.sql/java.sql.DriverManager.getConnection(DriverManager.java:681)
at
java.sql/java.sql.DriverManager.getConnection(DriverManager.java:252)
at Login.LogInDB(Login.java:110)
at Main.Main_Start(Main.java:90)
at Index.doGet(Index.java:22)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:537)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:631)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at
org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:281)
at
java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
at
java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:584)
at
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:312)
at
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:171)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:203)
at
org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:133)
at
java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:132)
at
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at
org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:281)
at
java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
at
java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:584)
at
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:312)
at
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:254)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:172)
at
org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:133)
at
java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:132)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:676)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
at
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:400)
at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894)
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)
at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.security.AccessControlException: access denied
("java.util.logging.LoggingPermission" "control")
at
java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:485)
at
java.base/java.security.AccessController.checkPermission(AccessController.java:1068)
at
java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:416)
at
java.logging/java.util.logging.LogManager.checkPermission(LogManager.java:2440)
at
java.logging/java.util.logging.Logger.checkPermission(Logger.java:622)
at java.logging/java.util.logging.Logger.setLevel(Logger.java:2002)
at net.ucanaccess.util.Logger.turnOffJackcessLog(Logger.java:55)
at net.ucanaccess.jdbc.DBReference.<init>(DBReference.java:166)
at
net.ucanaccess.jdbc.DBReferenceSingleton.loadReference(DBReferenceSingleton.java:51)
at
net.ucanaccess.jdbc.UcanaccessDriver.connect(UcanaccessDriver.java:91)
... 51 more</init>
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
I try to use UCanAccess in my Tomcat software.
I use:
Eclips IDE Version: 2022-12 (4.26.0)
jre-8u361-windows-x64
apache-tomcat-10.1.6
an Access2000 DB
ucanaccess-5.0.1.jar
jackcess-3.0.1.jar
hsqldb-2.5.0.jar
commons-lang3-3.8.1.jar
jackcess-encrypt3.0.1.jar
I run this code:
Connection con_test;
try
{
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
String DATABASE_URL =
"jdbc:ucanaccess://C:/Users/Myself/eclipse-workspace/Testit/DB/TestDB.mdb";
System.out.println(DATABASE_URL);
con_test = DriverManager.getConnection( DATABASE_URL );
System.out.println("OK.");
}
catch (Exception ex)
{
System.out.println(
"#####################################################################" );
System.out.println( "Class: " + ex.getStackTrace()[0].getClass());
System.out.println( "File Name: " +
ex.getStackTrace()[0].getFileName());
System.out.println( "Line Number: " +
ex.getStackTrace()[0].getLineNumber());
System.out.println( "Method Name: " +
ex.getStackTrace()[0].getMethodName());
System.out.println( "Class Name: " +
ex.getStackTrace()[0].getClassName());
System.out.println(ex.toString());
ex.printStackTrace();
ex.getStackTrace()[0].getClass();
System.out.println(
"#####################################################################" );
}
In my catalina.policy I already have;
grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
.....
permission java.util.logging.LoggingPermission "control";
.....
}
and I get this issue
Class: class java.lang.StackTraceElement
File Name: UcanaccessDriver.java
Line Number: 231
Method Name: connect
Class Name: net.ucanaccess.jdbc.UcanaccessDriver
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::5.0.1 access denied
("java.util.logging.LoggingPermission" "control")
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::5.0.1 access denied
("java.util.logging.LoggingPermission" "control")
at
net.ucanaccess.jdbc.UcanaccessDriver.connect(UcanaccessDriver.java:231)
at
java.sql/java.sql.DriverManager.getConnection(DriverManager.java:681)
at
java.sql/java.sql.DriverManager.getConnection(DriverManager.java:252)
at Login.LogInDB(Login.java:110)
at Main.Main_Start(Main.java:90)
at Index.doGet(Index.java:22)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:537)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:631)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at
org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:281)
at
java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
at
java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:584)
at
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:312)
at
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:171)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:203)
at
org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:133)
at
java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:132)
at
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at
org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:281)
at
java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
at
java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:584)
at
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:312)
at
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:254)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:172)
at
org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:133)
at
java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:132)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:676)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
at
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:400)
at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894)
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)
at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.security.AccessControlException: access denied
("java.util.logging.LoggingPermission" "control")
at
java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:485)
at
java.base/java.security.AccessController.checkPermission(AccessController.java:1068)
at
java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:416)
at
java.logging/java.util.logging.LogManager.checkPermission(LogManager.java:2440)
at
java.logging/java.util.logging.Logger.checkPermission(Logger.java:622)
at java.logging/java.util.logging.Logger.setLevel(Logger.java:2002)
at net.ucanaccess.util.Logger.turnOffJackcessLog(Logger.java:55)
at net.ucanaccess.jdbc.DBReference.<init>(DBReference.java:166)
at
net.ucanaccess.jdbc.DBReferenceSingleton.loadReference(DBReferenceSingleton.java:51)
at
net.ucanaccess.jdbc.UcanaccessDriver.connect(UcanaccessDriver.java:91)
... 51 more</init>