Best unofficial Apache Server developers community
Username
Forgot password?
Sign in with Twitter account
Sign in with Facebook account

Java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.misc)

1

66 views

hi fellas , so my hosting company changed their service to tomcat 7 with security manager, and from that time on i am getting this exception every time my application tries to connect to mysql database (with hibernate). i dont know what to do, they ask me for my tomcat permissions, but i have not defined anything special :-?

so can any one help me?

this is my stack trace :

type Exception report

message description The server encountered an internal error () that prevented it from fulfilling this request. Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) sun.reflect.GeneratedMethodAccessor134.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:269) java.security.AccessController.doPrivileged(Native Method) javax.security.auth.Subject.doAsPrivileged(Subject.java:517) org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:301) org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162) root cause

java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.misc) java.security.AccessControlContext.checkPermission(AccessControlContext.java:323) java.security.AccessController.checkPermission(AccessController.java:546) java.lang.SecurityManager.checkPermission(SecurityManager.java:532) java.lang.SecurityManager.checkPackageAccess(SecurityManager.java:1512) sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:298) java.lang.ClassLoader.loadClass(ClassLoader.java:248) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1302) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233) java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316) ir.omicc.utilBox.PasswordService.encrypt(PasswordService.java:29) ir.omicc.classes.loginFactory.doLogin(loginFactory.java:17) org.apache.jsp.loginValidate_jsp._jspService(loginValidate_jsp.java:76) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) sun.reflect.GeneratedMethodAccessor134.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:269) java.security.AccessController.doPrivileged(Native Method) javax.security.auth.Subject.doAsPrivileged(Subject.java:517) org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:301) org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)

asked May 30, 2011 3:32 am CDT
posted via StackOverflow

3 Answers

0
 

It seems that the class ir.omicc.utilBox.PasswordService tries to use some class in the sun.misc package. If this class is one of your classes, then you should reimplement it without accessing the sun.misc classes. If not, then ask the developer/company who implemented this class to fix it. Using sun.misc classes is a very bad practice, which has always been discouraged.

answered May 30, 2011 4:23 am CDT
0
 

There's a problem in your tomcat security configuration. Check if exists in ${catalina.home}/conf/catalina.policy the following lines :

grant {

    // Precompiled JSPs need access to this package.
    permission java.lang.RuntimePermission "accessClassInPackage.sun.misc";
    permission java.lang.RuntimePermission "accessClassInPackage.sun.misc.*";
};

and add in ${catalina.home}/conf/policy.d/03.catalina.policy

// The permissions granted to your jar (ir.omicc ??)
grant codeBase "file:/path/to/the/ir.omicc.utilBox/your.jar" {
  permission java.security.AllPermission;
};

it's a workaround but it's not secure.

answered May 30, 2011 4:23 am CDT
0
 

I asssume the stack trace has been edited. You now need to grant your codebase the following permission:

java.util.PropertyPermission "hibernate.enable_specj_proprietary_syntax", "read";

or more probably "hibernate.*", "read, write";

answered May 31, 2011 3:17 am CDT
EJP

Your answer

Join with account you already have


Sign in with Twitter account
Sign in with Facebook account
Sign in with Google Friend Connect

Preview
Similar questions