The Jakarta Project
      The Tomcat Servlet/JSP Container

Links

Getting Started

Administrators

Application Developers

Catalina Developers

Jasper Developers

Security Manager HOW-TO

¹è°æ Background

ÀÚ¹Ù º¸¾È°ü¸®ÀÚ SecurityManager´Â Ŭ¶óÀÌ¾ðÆ® ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÀÖ´Â ÆÄÀÏ¿¡ Á¢±ÙÇϰųª, ¾ÖÇø´ÀÌ °¡Á®¿Â °÷ÀÌ ¾Æ´Ñ ´Ù¸¥ È£½ºÆ®¿¡ ¿¬°áÇÏ·Á Çϰųª ÇÏ´Â µîÀÇ ½Å·ÚÇÏÁö ¸øÇÒ ÄÚµåµéÀÌ ½ÇÇàµÇ´Â °ÍÀ» ¸·±âÀ§ÇØ À¥ ºê¶ó¿ìÀú ³»ºÎÀÇ »÷µå¹Ú½º ³»¿¡¼­ ¾ÖÇø´À» ½ÇÇàÇϵµ·Ï Çã°¡ÇØÁÖ´Â °ÍÀÔ´Ï´Ù. º¸¾È°ü¸®ÀÚ°¡ ºê¶ó¿ìÀú¿¡¼­ ½Å·ÚµÇÁö ¾ÊÀº ¾ÖÇø´ÀÇ ½ÇÇàÀ» ¸·´Â °Í°ú ¸¶Âù°¡Áö·Î Tomcat ¿î¿µÁß¿¡ º¸¾È°ü¸®ÀÚ¸¦ »ç¿ëÇϸé, Æ®·ÎÀ̸ñ¸¶Çü ¼­ºí¸´°ú JSP ÆäÀÌÁöµé°ú JSP ºó°ú ű׶óÀ̺귯¸®¿Í ½ÉÁö¾î ÀǵµÀûÀÌÁö ¾ÊÀº ½Ç¼ö·ÎºÎÅÍ ¼­¹ö¸¦ º¸È£ÇÒ ¼ö ÀÖ½À´Ï´Ù.

¸¸ÀÏ À¥»çÀÌÆ®ÀÇ JSP ¸¦ ¸¸Áú ¼ö ÀÖ´Â ´©±º°¡ ¹«½É°á¿¡ ´ÙÀ½ ¹®ÀåÀ» Æ÷ÇÔÇÏ´Â JSPÆÄÀÏÀ» ¿Ã·Á³õ´Â´Ù°í Çϸé:

<% System.exit(1); %>

ÀÌ JSP ÆäÀÌÁö°¡ Tomcat ¿¡¼­ ½ÇÇàµÉ ¶§¸¶´Ù, Tomcat ÀÌ Á¾·áµË´Ï´Ù. ÀÚ¹Ù º¸¾È °ü¸®ÀÚ¸¦ »ç¿ëÇÏ´Â °ÍÀº ½Ã½ºÅÛ °ü¸®ÀÚ°¡ ¼­¹öÀÇ º¸¾È¼º°ú ¾ÈÁ¤¼ºÀ» À¯ÁöÇϱâ À§ÇØ ¹æ¾îÇÏ´Â ÇÑÁÙÀ» ´õ ¾²´Â °ÍÀÔ´Ï´Ù.

°æ°í - Tomcat ¿¡¼­ º¸¾È°ü¸®ÀÚ ±¸ÇöÀº ¿Ïº®ÇÏ°Ô Å×½ºÆ®µÇ°Å³ª, º¸¾È °¨»ç¸¦ ¹ÞÁö ¾Ê¾Ò½À´Ï´Ù. ½Å·ÚÇÒ ¼ö ¾ø´Â »ç¿ëÀÚ°¡ À¥ ¾îÇø®ÄÉÀ̼Ç, JSP, ¼­ºí¸´, ºó, ű׶óÀ̺귯¸® ¿Ã·Á¼­ »ç¿ëÇÏ´Â °ÍÀ» Çã¶ôÇϱâ Àü¿¡ Àü¿¡ º¸¾È°ü¸®ÀÚ È¯°æ¼³Á¤¿¡ ¸¸Á·ÇÏ´ÂÁö ¸ÕÀú È®½ÇÈ÷ ÇϽʽÿÀ. ÇÏÁö¸¸, º¸¾È°ü¸®ÀÚ°¡ ¾ø´Â °Íº¸´Ù´Â È®½ÇÈ÷ »ç¿ëÇÏ´Â °ÍÀÌ ³´½À´Ï´Ù.

񀀥 Permissions

±ÇÇÑ Å¬·¡½º´Â Tomcat ÀÌ ·ÎµåÇÒ Å¬·¡½ºÀÇ ±ÇÇÑÀ» Á¤ÀÇÇϴµ¥ ¾²ÀÔ´Ï´Ù. JDKÀÇ Áß¿¡ ¸î°¡Áö Ç¥ÁØ ±ÇÇÑ Å¬·¡½ºµéÀÌ ÀÖ°í, À¥ ¾îÇø®ÄÉÀ̼ǿ¡¼­ »ç¿ëÇÒ ±ÇÇÑ Å¬·¡½º¸¦ Á÷Á¢ ¸¸µé ¼öµµ ÀÖ½À´Ï´Ù. µÎ°¡Áö ±â¼ú ¸ðµÎ Tomcat 4¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

Ç¥ÁØ ±ÇÇÑ Standard Permissions

Tomcat ¿¡ Àû¿ëÇÒ ¼ö Àִ ǥÁØ ½Ã½ºÅÛ º¸¾È°ü¸®ÀÚ ±ÇÇÑ Å¬·¡½ºµéÀÇ °£´ÜÇÑ ¿ä¾àÀÔ´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº http://java.sun.com/security/ ¸¦ Âü°íÇϽʽÿÀ.

  • java.util.PropertyPermission - java.home ¿Í °°Àº JVM ÇÁ·ÎÆÛƼ¿¡ ´ëÇÑ Àбâ/¾²±â Á¢±ÙÀ» Á¦¾î.
  • java.lang.RuntimePermission - ¸î¸î System/Runtime ÀÇ ÇÔ¼öµéÀÇ »ç¿ë Á¦¾î. ¿¹) exit() ¿Í exec().
  • java.io.FilePermission - ÆÄÀϰú µð·ºÅ丮¿¡ ´ëÇÑ Àбâ/¾²±â/½ÇÇà Á¢±Ù Á¦¾î.
  • java.net.SocketPermission - ³×Æ®¿öÅ© ¼ÒÄÏ »ç¿ë Á¦¾î.
  • java.net.NetPermission - ´ÙÁßij½ºÆ® ³×Æ®¿öÅ© ¿¬°á »ç¿ë Á¦¾î.
  • java.lang.reflect.ReflectPermission - Ŭ·¡½º ÀÎÆ®·Î½ºÆå¼Ç ¿¡ »ç¿ëµÇ´Â ¸®Ç÷º¼ÇÀÇ »ç¿ë Á¦¾î.
  • java.security.SecurityPermission - º¸¾È ¸Þ¼Òµå¿¡ Á¢±Ù Á¦¾î.
  • java.security.AllPermission - ¸ðµç ±ÇÇÑ¿¡ ´ëÇØ Á¢±ÙÀ» Çã°¡ÇÕ´Ï´Ù. ¸¶Ä¡, º¸¾È°ü¸®ÀÚ ¾øÀÌ Tomcat À» ¿î¿µÇÏ´Â °Í°ú °°½À´Ï´Ù.
Tomcat »ç¿ëÀÚ Á¤ÀÇ ±ÇÇÑ Tomcat Custom Permissions

TomcatÀº org.apache.naming.JndiPermission À¸·Î ºÒ¸®´Â »ç¿ëÀÚ Á¤ÀÇ ±ÇÇÑ Å¬·¡½º¸¦ »ç¿ëÇÕ´Ï´Ù. ÀÌ ±ÇÇÑÀº ÆÄÀÏ ±â¹Ý ÀÚ¿øÀ¸·Î ¸í¸íµÈ JNDI¿¡ ´ëÇÑ Àбâ Á¢±ÙÀ» Á¦¾îÇÕ´Ï´Ù. ±ÇÇѸíÀº JNDI ¸íÀÌ°í ¾×¼ÇÀº ¾ø½À´Ï´Ù. "*" °¡ µû¶óºÙÀ¸¸é ±ÇÇÑÀ» ºÎ¿©ÇÒ ¶§ JNDI ¸í¸íµÈ ÆÄÀÏÀÚ¿ø¿¡ ´ëÇØ¼­ ¿ÍÀϵå Ä«µå ¸ÅĪÀ¸·Î »ç¿ëµË´Ï´Ù. ¿¹¸¦ µé¾î, Á¤Ã¥ÆÄÀÏ¿¡ ´ÙÀ½°ú °°ÀÌ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù:

permission  org.apache.naming.JndiPermission  "jndi://localhost/examples/*";

À̰°Àº ±ÇÇÑ ¿£Æ®¸®´Â, Á¤Àû ÀÚ¿ø Àб⸦ Çã¶ôÇϰí, (¸í½ÃÀûÀ¸·Î ±ÇÇÑÀÌ ºÎ¿©µÇÁö ¾Ê¾Ò´Ù¸é) ´Ù¸¥ ÆÄÀϵé Àб⿡ ´ëÇÑ Á¢±ÙÀ» ¸·±âÀ§ÇØ ¹èÄ¡ÇÒ °¢°¢ÀÇ À¥ ¾îÇø®ÄÉÀ̼ǿ¡ µ¿ÀûÀ¸·Î »ý¼ºµË´Ï´Ù. A Permission entry like this is generated dynamically for each web application that is deployed, to allow it to read its own static resources but disallow it from using file access to read any other files (unless permissions for those files are explicitly granted).

Tomcat º¸¾È°ü¸®ÀÚ ¼³Á¤Çϱâ Configuring Tomcat With A SecurityManager

Á¤Ã¥ ÆÄÀÏ Çü½Ä Policy File Format

ÀÚ¹Ù º¸¾È°ü¸®ÀÚ¿¡¼­ ±¸ÇöµÇ´Â º¸¾È Á¤Ã¥Àº $CATALINA_HOME/conf/catalina.policy ÆÄÀÏ¿¡ ¼³Á¤µË´Ï´Ù. ÀÌ ÆÄÀÏÀº ÇöÀç JDK ½Ã½ºÅÛ µð·ºÅ丮¿¡ ÀÖ´Â java.policy ÆÄÀÏÀ» ´ëÄ¡ÇÕ´Ï´Ù. catalina.policy ÆÄÀÏÀº ¼öµ¿À¸·Î ¹Ù²Ü ¼ö ÀÖ°í, Java 1.2 ³ª ÀÌÈÄÀÇ ¹öÀü¿¡ ÀÖ´Â Á¤Ã¥µµ±¸ policytool ¾îÇø®ÄÉÀ̼ÇÀ» ÀÌ¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

catalina.policy ÆÄÀÏ¿¡ ÀÖ´Â ¿£Æ®¸®µéÀº ´ÙÀ½°ú °°ÀÌ Ç¥ÁØ java.policy ÆÄÀÏ Çü½ÄÀ» »ç¿ëÇÕ´Ï´Ù:

// Example policy file entry

grant [signedBy <signer>,] [codeBase <code source>] {
  permission  <class>  [<name> [, <action list>]];
};

signedBy ¿Í codeBase Ç׸ñÀº ±ÇÇÑÀ» ºÎ¿©ÇÒ¶§ ¼±ÅÃÀûÀÔ´Ï´Ù. ÁÖ¼® ÁÙÀº "//" ·Î ½ÃÀÛÇϰí ÁÙ ³¡±îÁö ÁÖ¼®¿¡ ÇØ´çµË´Ï´Ù. codeBase ´Â URL Çü½ÄÀ̰í, (JAVA_HOME °ú CATALINA_HOME ȯ°æº¯¼ö¿¡ ÀÇÇØ Á¤ÇØÁø µð·ºÅ丮¸¦ ¶æÇÏ´Â) ${java.home} °ú ${catalina.home} ÇÁ·ÎÆÛƼ¸¦ ÆÄÀÏ URL ¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

±âº» Á¤Ã¥ ÆÄÀÏ The Default Policy File

±âº» $CATALINA_HOME/conf/catalina.policy ÆÄÀÏÀº ´ÙÀ½°ú °°½À´Ï´Ù:

// ============================================================================
// catalina.corepolicy - Tomcat 4.0 ÀÇ º¸¾È Á¤Ã¥ ±ÇÇÑ
//
// ÀÌ ÆÄÀÏÀº Catalina ½ÇÇà½Ã "-security" ¿É¼ÇÀ» ÁÖ¾úÀ» ¶§ (JVM ¿¡ ÀÇÇØ ) °­Á¦µÈ
// º¸¾È Á¤Ã¥ ±âº» ¼¼ÆÃÀ» Æ÷ÇÔÇÕ´Ï´Ù. ¿©±â¿¡ ºÎ¿©µÈ ±ÇÇÑ¿¡ Ãß°¡·Î, ´ÙÀ½ÀÇ ºÎ°¡
// ±ÇÇÑÀÌ °¢°¢ÀÇ À¥ ¾îÇø®ÄÉÀ̼ǿ¡ ÁöÁ¤µÈ codebase ¿¡ ºÎ¿©µË´Ï´Ù:
//
// * µµÅ¥¸ÕÆ® ·çÆ® µð·ºÅ丮 Àбâ Á¢±Ù
//
// ============================================================================


// ========== SYSTEM CODE PERMISSIONS =========================================


// javac ¿¡ Àû¿ë
grant codeBase "file:${java.home}/lib/-" {
  permission java.security.AllPermission;
};

// ¸ðµç °øÀ¯ ½Ã½ºÅÛ ÀͽºÅټǿ¡ Àû¿ë
grant codeBase "file:${java.home}/jre/lib/ext/-" {
  permission java.security.AllPermission;
};

// ${java.home} ÀÌ $JAVA_HOME/jre À» °¡¸£Å³ ¶§ javac ¿¡ Àû¿ë
grant codeBase "file:${java.home}/../lib/-" {
  permission java.security.AllPermission;
};

// ${java.home} ÀÌ $JAVA_HOME/jre À» °¡¸£Å³ ¶§
// ¸ðµç °øÀ¯ ½Ã½ºÅÛ ÀͽºÅټǿ¡ Àû¿ë
grant codeBase "file:${java.home}/lib/ext/-" {
  permission java.security.AllPermission;
};


// ========== CATALINA CODE PERMISSIONS =======================================


// ¼­¹ö ½ÃÀÛ Äڵ忡 Àû¿ë
grant codeBase "file:${catalina.home}/bin/bootstrap.jar" {
  permission java.security.AllPermission;
};

// ¼­ºí¸´ API Ŭ·¡½º¿Í "common" µð·ºÅ丮¿¡ ÀÖ´Â ¸ðµç Ŭ·¡½º ·Î´õµé¿¡
// °ÉÃļ­ °øÀ¯µÈ Ŭ·¡½ºµé¿¡ Àû¿ë
grant codeBase "file:${catalina.home}/common/-" {
  permission java.security.AllPermission;
};

// ÄÁÅ×ÀÌ³Ê ÄÚ¾î ÄÚµå¿Í "server" µð·ºÅ丮¿¡ ¼³Ä¡µÈ ºÎ°¡ÀûÀÎ
// ¶óÀ̺귯¸®¿¡ Àû¿ë
grant codeBase "file:${catalina.home}/server/-" {
  permission java.security.AllPermission;
};

// jasper ÆäÀÌÁö ÄÄÆÄÀÏ·¯¿¡ Àû¿ë
grant codeBase "file:${catalina.home}/shared/lib/jasper-compiler.jar" {
  permission java.security.AllPermission;
};

// jasper JSP runtime ¿¡ Àû¿ë
grant codeBase "file:${catalina.home}/shared/lib/jasper-runtime.jar" {
  permission java.security.AllPermission;
};

// Ưº°È÷ Çã°¡µÈ admin °ú manager À¥ ¾îÇø®ÄÉÀ̼ǿ¡ Àû¿ë
grant codeBase "file:${catalina.home}/server/webapps/admin/WEB-INF/classes/-" {
  permission java.security.AllPermission;
};

grant codeBase "file:${catalina.home}/server/webapps/admin/WEB-INF/lib/struts.jar" {
  permission java.security.AllPermission;
};

// ========== WEB APPLICATION PERMISSIONS =====================================


// ÀÌ ±ÇÇѵéÀº ±âº»ÀûÀ¸·Î ¸ðµç À¥ ¾îÇø®ÄÉÀ̼ǿ¡ ºÎ¿©µÈ °ÍÀÔ´Ï´Ù.
// µ¡ºÙ¿©¼­, À¥ ¾îÇø®ÄÉÀ̼ÇÀº ÇØ´ç ¹®¼­ ·çÆ®¿¡ ÀÖ´Â ¸ðµç ÆÄÀϵé°ú µð·ºÅ丮µé¿¡
// ´ëÇØ¼­ FilePermission °ú JndiPermission Àб⠱ÇÇÑÀÌ ÁÖ¾îÁ®ÀÖ½À´Ï´Ù.
grant {
  // ¸í¸íµÈ JDBC DataSource ÀÇ JNDI lookup ¿Í ¸ÞÀÏ º¸³»´Âµ¥ »ç¿ëµÇ´Â ¸í¸íµÈ
  // MimePart DataSource ÀÇ javamail ¿¡ ¿ä±¸µÊ
  permission java.util.PropertyPermission "java.home", "read";
  permission java.util.PropertyPermission "java.naming.*", "read";
  permission java.util.PropertyPermission "javax.sql.*", "read";

  // Àбâ Á¢±ÙÀº Çã°¡ÇÏ´Â OS ¿¡ µû¸¥ ÇÁ·ÎÆÛƼ
  permission java.util.PropertyPermission "os.name", "read";
  permission java.util.PropertyPermission "os.version", "read";
  permission java.util.PropertyPermission "os.arch", "read";
  permission java.util.PropertyPermission "file.separator", "read";
  permission java.util.PropertyPermission "path.separator", "read";
  permission java.util.PropertyPermission "line.separator", "read";

  // Àбâ Á¢±ÙÀº Çã°¡ÇÏ´Â JVM ÇÁ·ÎÆÛƼ
  permission java.util.PropertyPermission "java.version", "read";
  permission java.util.PropertyPermission "java.vendor", "read";
  permission java.util.PropertyPermission "java.vendor.url", "read";
  permission java.util.PropertyPermission "java.class.version", "read";
  permission java.util.PropertyPermission "java.specification.version", "read";
  permission java.util.PropertyPermission "java.specification.vendor", "read";
  permission java.util.PropertyPermission "java.specification.name", "read";

  permission java.util.PropertyPermission "java.vm.specification.version", "read";
  permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
  permission java.util.PropertyPermission "java.vm.specification.name", "read";
  permission java.util.PropertyPermission "java.vm.version", "read";
  permission java.util.PropertyPermission "java.vm.vendor", "read";
  permission java.util.PropertyPermission "java.vm.name", "read";

  // BeanInfo °¡Á®¿À±â¿¡ ¿ä±¸µÊ
  permission java.lang.RuntimePermission "accessClassInPackage.sun.beans.*";

  // JSPC °¡ »ý¼ºÇÑ ¼­ºí¸´ ½ÇÇà¿¡ ¿ä±¸µÊ
  permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime.*";

  // OpenJMX ¿¡ ¿ä±¸µÊ
  permission java.lang.RuntimePermission "getAttribute";

  // JAXP ȣȯ XML ÆÄ¼­ µð¹ö±× Àб⸦ Çã°¡
  permission java.util.PropertyPermission "jaxp.debug", "read";
};


// ƯÁ¤ÇÑ À¥ ¾îÇø®ÄÉÀ̼ǿ¡ ¿©±â ÀÖ´Â °Íó·³ Ãß°¡ÇÒ "grant" ¿£Æ®¸®¸¦ µ¡ºÙ¿©¼­,
// Ãß°¡ ±ÇÇÑÀ» ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇØ´ç ¾îÇø®ÄÉÀ̼Ç, /WEB-INF/classes/, ¶Ç´Â
// /WEB-INF/lib/ jarÆÄÀϵéÀÇ ÄÚµå º£À̽º¿¡ ±â¹ÝÇÕ´Ï´Ù.
//
// JSP ÆäÀÌÁö, /WEB-INF/classes/ µð·ºÅ丮¿¡¼­ ºÒ·¯¿Â Ŭ·¡½º ÆÄÀÏ, /WEB-INF/lib/
// µð·ºÅ丮¿¡ ÀÖ´Â ¸ðµç jar ÆÄÀÏ, ½ÉÁö¾î °³º°ÀûÀ¸·Î ¸¸µç /WEB-INF/lib/ ¿¡ ÀÖ´Â
// jar ÆÄÀÏ¿¡ ´ëÇØ¼­µµ ´Ù¸¥ ±ÇÇÑÀ» ºÎ¿©ÇÒ ¼ö ÀÖ½À´Ï´Ù.
//
// ¿¹¸¦ µé¾î, Ç¥ÁØ "examples" ¾îÇø®ÄÉÀ̼ÇÀÌ NOAA À¥¼­¹ö·ÎºÎÅÍ ³¯¾¾Á¤º¸¸¦
// °¡Á®¿À´Â scrape taglib À» »ç¿ëÇϰųª, ÇØ´ç DB¿¡ ³×Æ®¿öÅ© ¿¬°áÀ» ¼³Á¤ÇÒ
// Çʿ䰡 ÀÖ´Â JDBC ÇÁ·Î±×·¥À» Æ÷ÇÔÇÑ´Ù°í °¡Á®Çϸé
// ÀÌ·¸°Ô "grant" ¿£Æ®¸®¸¦ ¸¸µé¾î¾ß µÉ ¼öµµ ÀÖ½À´Ï´Ù:
//
// ÄÁÅØ½ºÆ® ·çÆ® µð·ºÅ丮ÀÇ jsp ÆäÀÌÁö¿¡ ºÎ¿©µÇ´Â ±ÇÇÑ
// grant codeBase "file:${catalina.home}/webapps/examples/-" {
//   permission java.net.SocketPermission "dbhost.mycompany.com:5432", "connect";
//   permission java.net.SocketPermission "*.noaa.gov:80", "connect";
// };
//
// ÄÁÅØ½ºÆ® WEB-INF/classes µð·ºÅ丮¿¡ ÁÖ¾îÁö´Â ±ÇÇÑ
// grant codeBase "file:${catalina.home}/webapps/examples/WEB-INF/classes/-" {
// };
//
// JDBC driver ¿¡ ÁÖ¾îÁö´Â ±ÇÇÑ
// grant codeBase "jar:file:${catalina.home}/webapps/examples/WEB-INF/lib/driver.jar" {
//   permission java.net.SocketPermission "dbhost.mycompany.com:5432", "connect";
// };
// scrape taglib ¿¡ ÁÖ¾îÁö´Â ±ÇÇÑ
// grant codeBase "jar:file:${catalina.home}/webapps/examples/WEB-INF/lib/scrape.jar" {
//   permission java.net.SocketPermission "*.noaa.gov:80", "connect";
// };

º¸¾È°ü¸®ÀÚ¿Í ÇÔ²² Tomcat ½ÃÀÛÇϱâ Starting Tomcat With A SecurityManager

º¸¾È°ü¸®ÀÚ¸¦ »ç¿ëÇϱâ À§ÇØ catalina.policy ÆÄÀÏÀ» ¼³Á¤Çß´Ù¸é, "-security" ¿É¼ÇÀ» Á־ º¸¾È°ü¸®ÀÚ¿Í ÇÔ²² Tomcat À» ½ÃÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù:

$CATALINA_HOME/bin/catalina.sh start -security    (Unix)
%CATALINA_HOME%\bin\catalina start -security      (Windows)
¹®Á¦Çذá Troubleshooting

À¥ ¾îÇø®ÄÉÀ̼ÇÀÌ ÇÊ¿äÇÑ ±ÇÇѾøÀÌ ±ÝÁöµÈ ¾î¶² µ¿ÀÛÀ» ½ÇÇàÇÏ·Á°í ½ÃµµÇß´Ù¸é º¸¾È°ü¸®ÀÚ°¡ À§¹ÝÀ» °¨ÁöÇßÀ» ¶§ AccessControlException ¶Ç´Â SecurityException ¸¦ ¹ß»ý½Ãŵ´Ï´Ù. ºüÁø ±ÇÇÑÀ» µð¹ö±ëÇÏ´Â °ÍÀº µµÀüÀûÀ̰í, ½ÇÇàÁß¿¡ ¸¸µé¾îÁø ¸ðµç º¸¾È °áÁ¤»çÇ×ÀÇ µð¹ö±× Ãâ·ÂÀ» ÀÛµ¿ÇÏ°Ô ÇÕ´Ï´Ù. À̰ÍÀº Tomcat ½ÃÀÛ Àü¿¡ ½Ã½ºÅÛ ÇÁ·ÎÆÛƼ¸¦ ¼³Á¤ÇÏ¸é µË´Ï´Ù. °¡Àå ½¬¿î ¹æ¹ýÀº CATALINA_OPTS ȯ°æ º¯¼ö¸¦ ÅëÇØ ÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ ¸í·ÉÀ» ½ÇÇàÇÕ´Ï´Ù:

export CATALINA_OPTS=-Djava.security.debug=access,failure    (Unix)
set CATALINA_OPTS=-Djava.security.debug=access,failure       (Windows)

Tomcat À» ½ÃÀÛÇϱâ Àü¿¡ ¸»ÀÌÁÒ.

°æ°í WARNING - ÀÌ·¸°Ô ÇÏ¸é ¼ö½Ê ¸Þ°¡ÀÇ Ãâ·ÂÆÄÀÏÀÌ »ý¼ºµË´Ï´Ù! ±×·¯³ª, "denied" ´Ü¾î¸¦ °Ë»öÇÏ¸é ¹®Á¦ÀÇ ¿øÀÎÀ» ÃßÀûÇØ¼­ ¾î¶² ±ÇÇÑÀÌ Ã¼Å©µÇ°í ÀÖ´ÂÁö °áÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿©±â¿¡µµ ÀÖ´Â ´õ ÀÚ¼¼ÇÑ ¿É¼Ç¿¡ ´ëÇØ¼­´Â ÀÚ¹Ù º¸¾È ¹®¼­¸¦ º¸½Ê½Ã¿À.

¿øº»:http://jakarta.apache.org/tomcat/tomcat-4.1-doc/security-manager-howto.html

Copyright © 1999-2002, Apache Software Foundation
¹ø¿ª: Ç㱤³², contact: kenu@okjsp.pe.kr http://okjsp.pe.kr
http://www.apache-korea.org , jakarta-seoul project