java.security.AccessControlException:访问被拒绝(java.lang.RuntimePermission accessClassInPackage.sun.misc) [英] java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.misc)

查看:123
本文介绍了java.security.AccessControlException:访问被拒绝(java.lang.RuntimePermission accessClassInPackage.sun.misc)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

因此,我的托管公司使用安全管理器将其服务更改为tomcat 7,从那时起,每当我的应用程序尝试使用Hibernate连接到MySQL数据库时,我都会收到此异常。我不知道该怎么做,他们向我要求我的Tomcat权限,但我没有定义任何特殊的。



任何人都可以帮助我吗?



这是我的堆栈跟踪:

  org.apache.jasper.servlet.JspServletWrapper .handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
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)

根本原因

javax.servlet.ServletException:java.lang.ExceptionInInitializerError
org.apache.jasper .runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862)
org.apache.jasper.runtime.PageContextImpl.access $ 1100(PageContextImpl.java:71)
org.apache.jasper.runtime.PageContextImpl $ 12 .run(PageContextImpl.java:778)
java.security.AccessController.doPrivileged(Native Method)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:776)
org.apache.jsp.news_jsp._jspService(news_jsp.java:285)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet。服务(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方法)
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)


根本原因

java.lang.ExceptionInInitializerError
ir.omicc.hibernate.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:16)
ir.omicc.hibernate.util.HibernateUtil.getSessionFactory(HibernateUtil.java:24)
ir.omicc.classes。 Publisher.getNews(Publisher.java:126)
org.apache.jsp.news_jsp._jspService(news_jsp.java:221)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:
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。服务(HttpServlet.java:717)
sun.reflect.GeneratedMethodAccessor134.invoke(未知源)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect .Method.invoke(Method.java:597)
org.apa che.catalina.security.SecurityUtil $ 1.run(SecurityUtil.java:269)
java.security.AccessController.doPrivileged(Native方法)
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)

根本原因



java.security.AccessControlException:访问被拒绝(java.util.PropertyPermission hibernate.enable_specj_proprietary_syntax读取)
java.security.AccessControlContext .checkPermission(AccessControlContext.java:323)
java.security.AccessController.checkPermission(AccessController.java:546)
java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
java .lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1285)
java.lang.System.getProperty(System.java:650)
org.hibernate.cfg.Configuration.reset(Configuration.java :362)
org.hibernate.cfg.Configuration。< init>(Configuration.java:296)
org.hibernate.cfg.Configuration。< init>(Configuration.java:300)
ir.omicc.hibernate.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:12)
ir.omicc.hibernate.util.HibernateUtil.getSessionFactory(HibernateUtil.java:24)
ir.omicc .classes.Publisher.getNews(Publisher.java:126)
org.apache.jsp.news_jsp._jspService(news_jsp.java:221)
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)


解决方案

您的tomcat安全配置存在问题。
检查$ {catalina.home} /conf/catalina.policy
中是否存在以下行:

  grant {

//预编译的JSP需要访问这个包。
permission java.lang.RuntimePermissionaccessClassInPackage.sun.misc;
permission java.lang.RuntimePermissionaccessClassInPackage.sun.misc。*;
};

并添加到$ {catalina.home} /conf/policy.d/03.catalina.policy

  //授予你jar的权限(ir.omicc ??)
授予codeBasefile:/ path /to/the/ir.omicc.utilBox/your.jar{
permission java.security.AllPermission;
};

这是一种解决方法,但它不安全。


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 don't know what to do, they ask me for my Tomcat permissions, but I have not defined anything special.

Can any one help me?

This is my stack trace:

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
    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

javax.servlet.ServletException: java.lang.ExceptionInInitializerError
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862)
    org.apache.jasper.runtime.PageContextImpl.access$1100(PageContextImpl.java:71)
    org.apache.jasper.runtime.PageContextImpl$12.run(PageContextImpl.java:778)
    java.security.AccessController.doPrivileged(Native Method)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:776)
    org.apache.jsp.news_jsp._jspService(news_jsp.java:285)
    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)


root cause

java.lang.ExceptionInInitializerError
    ir.omicc.hibernate.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:16)
    ir.omicc.hibernate.util.HibernateUtil.getSessionFactory(HibernateUtil.java:24)
    ir.omicc.classes.Publisher.getNews(Publisher.java:126)
    org.apache.jsp.news_jsp._jspService(news_jsp.java:221)
    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)

root cause



java.security.AccessControlException: access denied (java.util.PropertyPermission hibernate.enable_specj_proprietary_syntax read)
    java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
    java.security.AccessController.checkPermission(AccessController.java:546)
    java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
    java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1285)
    java.lang.System.getProperty(System.java:650)
    org.hibernate.cfg.Configuration.reset(Configuration.java:362)
    org.hibernate.cfg.Configuration.<init>(Configuration.java:296)
    org.hibernate.cfg.Configuration.<init>(Configuration.java:300)
    ir.omicc.hibernate.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:12)
    ir.omicc.hibernate.util.HibernateUtil.getSessionFactory(HibernateUtil.java:24)
    ir.omicc.classes.Publisher.getNews(Publisher.java:126)
    org.apache.jsp.news_jsp._jspService(news_jsp.java:221)
    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)

解决方案

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.

这篇关于java.security.AccessControlException:访问被拒绝(java.lang.RuntimePermission accessClassInPackage.sun.misc)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆