Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6661904
  • 博文数量: 915
  • 博客积分: 17977
  • 博客等级: 上将
  • 技术积分: 8846
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-26 09:59
个人简介

一个好老好老的老程序员了。

文章分类

全部博文(915)

文章存档

2022年(9)

2021年(13)

2020年(10)

2019年(40)

2018年(88)

2017年(130)

2015年(5)

2014年(12)

2013年(41)

2012年(36)

2011年(272)

2010年(1)

2009年(53)

2008年(65)

2007年(47)

2006年(81)

2005年(12)

分类: Java

2011-05-04 22:58:34

Ubuntu下Tomcat 6安全配置policy策略

之前一直都没了解过Tomcat安全策略

一直到一天,

我把在window下开发好的工程,

直接复制到公司测试环境(Redhat + Apache tomcat 6.0.26.tar.gz版)能正常运行,

而拖到虚拟机里的Ubuntu(sudo apt-get install tomcat6)里运行,发现servlet跑不起来。。

其中的Exception包括:

javax.servlet.ServletException java.lang.ExceptionInInitializerError org.hibernate.cfg.Configuration.(Configuration.java:120)java.security.AccessControlException: access denied (java.util.PropertyPermission org.apache.commons.logging.LogFactory.HashtableImpl read)

一下给搞蒙了,以为是漏了jar包,

发现一模一样,没少传,

再仔细看第一次运行的时候的报错信息,

找出了一点腻端,发现跟security策略有关,

于是打开tomcat服务启动文件/etc/init.d/tomcat6

发现有一个跟安全配置相关的语句:TOMCAT6_SECURITY=yes

抱着试试看的态度,把它注释掉,

重启tomcat,居然能正常跑起来了。

于是google一番tomcat security配置,

找到原来在tomcat/policy.d/下有一系列的策略文件,

在里面给工程下的WEB-INF/classesWEB-INF/lib目录添加上所有权限即可解决问题

我的解决步骤如下:

1、把工程放到/var/lib/tomcat/webapps/下(自己修改server.xml设置Context虚拟目录也是一样);

2、修改tomcat/policy.d/50local.policy文件,

最后添加上:

// The permissions granted to the context WEB-INF/classes directory
grant codeBase "file:${catalina.base}/webapps/test/WEB-INF/classes/-" {
   permission java.security.AllPermission;
};

// The permissions granted to the context WEB-INF/lib directory
grant codeBase "file:${catalina.base}/webapps/test/WEB-INF/lib/-" {
   permission java.security.AllPermission;
};
注意上面的路径修改为工程的下对应目录的路径即可。

3、重启tomcat,工程顺利跑起来了。


links:http://hi.baidu.com/lane727/blog/item/4a7275d161331938970a16cc.html
阅读(3146) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~