【问题标题】:spring + hibernate system access denyspring + hibernate系统访问拒绝
【发布时间】:2012-03-24 12:41:25
【问题描述】:

我目前正在为公司开发网站并使用 spring 和 hibernate。该网站即将完成。但是,当我将它部署在虚拟主机中时,它给了我错误:

16:51:39,518 WARN PoolConfig:105 - 读取系统属性被阻止——通过系统属性忽略任何 c3p0 配置! (但是通过 c3p0.properties 文件进行的任何配置仍然可以!) java.security.AccessControlException:访问被拒绝(java.util.PropertyPermission * 读、写) 在 java.security.AccessControlContext.checkPermission(AccessControlContext.java:323) 在 java.security.AccessController.checkPermission(AccessController.java:546) 在 java.lang.SecurityManager.checkPermission(SecurityManager.java:532) 在 java.lang.SecurityManager.checkPropertiesAccess(SecurityManager.java:1252) 在 java.lang.System.getProperties(System.java:580) 在 com.mchange.v2.c3p0.PoolConfig.(PoolConfig.java:101) 在 com.mchange.v2.c3p0.impl.C3P0ImplUtils.defaultConnectionTester(C3P0ImplUtils.java:283) 在 com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.(WrapperConnectionPoolDataSource.java:47) 在 com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.(WrapperConnectionPoolDataSource.java:67) 在 com.mchange.v2.c3p0.ComboPooledDataSource.(ComboPooledDataSource.java:113) 在 com.mchange.v2.c3p0.ComboPooledDataSource.(ComboPooledDataSource.java:104) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:513) 在 org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:83) 在 org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:61) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:872) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:835) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:501) 在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249) 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:168) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:404) 在 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:735) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:369) 在 org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:245) 在 org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:188) 在 org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) 在 com.caucho.server.http.Application.init(Application.java:1845) 在 com.caucho.server.http.VirtualHost.startApplication(VirtualHost.java:1207) 在 com.caucho.server.http.VirtualHost.getInvocation(VirtualHost.java:1007) 在 com.caucho.server.http.ServletServer.getInvocation(ServletServer.java:1249) 在 com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:343) 在 com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:274) 在 com.caucho.server.TcpConnection.run(TcpConnection.java:139) 在 java.lang.Thread.run(Thread.java:619) 16:51:41,690 信息版本:37 - Hibernate Commons Annotations 3.2.0.Final

16:51:45,639 错误 BasicLazyInitializer:165 - Javassist 增强失败:com.xxx.entity.xxx java.security.AccessControlException:访问被拒绝(java.lang.RuntimePermission getProtectionDomain) 在 java.security.AccessControlContext.checkPermission(AccessControlContext.java:323) 在 java.security.AccessController.checkPermission(AccessController.java:546) 在 java.lang.SecurityManager.checkPermission(SecurityManager.java:532) 在 java.lang.Class.getProtectionDomain(Class.java:2106) 在 javassist.util.proxy.ProxyFactory.getDomain(ProxyFactory.java:619) 在 javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:501) 在 javassist.util.proxy.ProxyFactory.createClass2(ProxyFactory.java:486) 在 javassist.util.proxy.ProxyFactory.createClass1(ProxyFactory.java:422) 在 javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:394) 在 org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxyFactory(JavassistLazyInitializer.java:162) 在 org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.postInstantiate(JavassistProxyFactory.java:65) 在 org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:185) 在 org.hibernate.tuple.entity.AbstractEntityTuplizer.(AbstractEntityTuplizer.java:167) 在 org.hibernate.tuple.entity.PojoEntityTuplizer.(PojoEntityTuplizer.java:77) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:513) 在 org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:105) 在 org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:133) 在 org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.(EntityEntityModeToTuplizerMapping.java:80) 在 org.hibernate.tuple.entity.EntityMetamodel.(EntityMetamodel.java:322) 在 org.hibernate.persister.entity.AbstractEntityPersister.(AbstractEntityPersister.java:485) 在 org.hibernate.persister.entity.SingleTableEntityPersister.(SingleTableEntityPersister.java:133) 在 org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:84) 在 org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:286) 在 org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1872) 在 org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:753) 在 org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:691) 在 org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1346) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1315) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) 在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249) 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:168) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:398) 在 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:735) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:369) 在 org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:245) 在 org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:188) 在 org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) 在 com.caucho.server.http.Application.init(Application.java:1845) 在 com.caucho.server.http.VirtualHost.startApplication(VirtualHost.java:1207) 在 com.caucho.server.http.VirtualHost.getInvocation(VirtualHost.java:1007) 在 com.caucho.server.http.ServletServer.getInvocation(ServletServer.java:1249) 在 com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:343) 在 com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:274) 在 com.caucho.server.TcpConnection.run(TcpConnection.java:139) 在 java.lang.Thread.run(Thread.java:619) 16:51:45,664 WARN PojoEntityTuplizer:197 - 无法为:com.xxx.entity.xxx 创建代理工厂 org.hibernate.HibernateException:Javassist 增强失败:com.hitv.entity.ProductMap 在 org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxyFactory(JavassistLazyInitializer.java:169) 在 org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.postInstantiate(JavassistProxyFactory.java:65) 在 org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:185) 在 org.hibernate.tuple.entity.AbstractEntityTuplizer.(AbstractEntityTuplizer.java:167) 在 org.hibernate.tuple.entity.PojoEntityTuplizer.(PojoEntityTuplizer.java:77) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:513) 在 org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:105) 在 org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:133) 在 org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.(EntityEntityModeToTuplizerMapping.java:80) 在 org.hibernate.tuple.entity.EntityMetamodel.(EntityMetamodel.java:322) 在 org.hibernate.persister.entity.AbstractEntityPersister.(AbstractEntityPersister.java:485) 在 org.hibernate.persister.entity.SingleTableEntityPersister.(SingleTableEntityPersister.java:133) 在 org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:84) 在 org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:286) 在 org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1872) 在 org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:753) 在 org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:691) 在 org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1346) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1315) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) 在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249) 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:168) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:398) 在 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:735) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:369) 在 org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:245) 在 org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:188) 在 org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) 在 com.caucho.server.http.Application.init(Application.java:1845) 在 com.caucho.server.http.VirtualHost.startApplication(VirtualHost.java:1207) 在 com.caucho.server.http.VirtualHost.getInvocation(VirtualHost.java:1007) 在 com.caucho.server.http.ServletServer.getInvocation(ServletServer.java:1249) 在 com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:343) 在 com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:274) 在 com.caucho.server.TcpConnection.run(TcpConnection.java:139) 在 java.lang.Thread.run(Thread.java:619) 引起:java.security.AccessControlException:访问被拒绝(java.lang.RuntimePermission getProtectionDomain) 在 java.security.AccessControlContext.checkPermission(AccessControlContext.java:323) 在 java.security.AccessController.checkPermission(AccessController.java:546) 在 java.lang.SecurityManager.checkPermission(SecurityManager.java:532) 在 java.lang.Class.getProtectionDomain(Class.java:2106) 在 javassist.util.proxy.ProxyFactory.getDomain(ProxyFactory.java:619) 在 javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:501) 在 javassist.util.proxy.ProxyFactory.createClass2(ProxyFactory.java:486) 在 javassist.util.proxy.ProxyFactory.createClass1(ProxyFactory.java:422) 在 javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:394) 在 org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxyFactory(JavassistLazyInitializer.java:162) ... 41 更多

我在互联网上搜索了很长时间。似乎是服务器安全策略问题。我有什么方法可以更改框架代码以绕过安全限制吗?根据日志需要修改哪个文件?

提前感谢您!

【问题讨论】:

  • 为什么不让您的公司转而使用不会让您使用 Java 版本的托管服务提供商?
  • 我早餐吃堆栈跟踪。

标签: java hibernate c3p0 javassist security-policy


【解决方案1】:

啊可爱,整个堆栈跟踪......

可以做一些更详细的。 你在运行什么操作系统? 您要部署到哪个服务器? 你都尝试了些什么? 它在本地有效吗? 您所说的网络托管是什么意思? 您是否拥有对服务器的完全访问权限?

最后,我认为部署服务器的安全策略与您尝试做的事情之间存在冲突。

例如如果是 tomcat,请检查 policy.d 配置文件夹。

【讨论】:

  • 旧公司网站运行在远程虚拟主机 JSP 服务器上。它使用树脂 2.17。它只是一个 cpanel 托管,所以我无法配置安全策略。这个网站在本地运行完美,我的树脂没有启用安全策略。所以我相信安全策略会导致这个问题。我已致电技术支持,但我认为他们不会愿意更改安全策略。这就是我寻求替代解决方案的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-10
  • 2023-03-05
  • 2012-10-07
  • 2011-01-11
  • 1970-01-01
  • 2015-11-13
相关资源
最近更新 更多