X-Git-Url: http://git.osdn.net/view?p=mikutoga%2FTogaGem.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fjp%2Fsfjp%2Fmikutoga%2Ftypical%2FI18nAlias.java;h=5942a412b25cea8242d08dee6f8e89bda63d3907;hp=e6e8c29fc22ae58055dc5f9ca5566e7dd371b946;hb=ed542b5a7123483f5abaa08d326cb42b32e4b465;hpb=e26fa0ddb4ae9368e17880190aec31792b343a83 diff --git a/src/main/java/jp/sfjp/mikutoga/typical/I18nAlias.java b/src/main/java/jp/sfjp/mikutoga/typical/I18nAlias.java index e6e8c29..5942a41 100644 --- a/src/main/java/jp/sfjp/mikutoga/typical/I18nAlias.java +++ b/src/main/java/jp/sfjp/mikutoga/typical/I18nAlias.java @@ -14,6 +14,7 @@ import java.util.Collections; import java.util.Comparator; import java.util.LinkedList; import java.util.List; +import javax.xml.XMLConstants; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; @@ -23,13 +24,17 @@ import org.xml.sax.SAXException; /** * å½éå&å¥å管çãªãã¸ã§ã¯ãã®å®è£ åºæ¿ã + * *
å¥å管çãªãã¸ã§ã¯ãã¯ã * åã ã®ãªã¹ãã®å é ã代表åã¨ãªãã * ãã©ã¤ããªåã®ä¸å¤ãªã¹ãã¨ã°ãã¼ãã«åã®ä¸å¤ãªã¹ããæã¤ã + * *
å½ç£ã¢ãã«ã§ã¯ãã©ã¤ããªåã«æ¥æ¬èªåãåãããããã¨ãå¤ãã * ãã©ã¤ããªåã¯å¿ ãä¸ã¤ä»¥ä¸ãªããã°ãªããªãã + * *
å½ç£ã¢ãã«ã§ã¯ã°ãã¼ãã«åã«è±èªåãåãããããã¨ãå¤ããã * ãã©ã¤ããªåã¨åä¸ã®æ¥æ¬èªåãåãããã¦ããå ´åãå¤ãã + * *
å¥å管çãªãã¸ã§ã¯ãã¯ã
* ã¤ã³ã¹ã¿ã³ã¹éã§ã®é åºãå®ç¾©ããããã®ãªã¼ãã¼çªå·ãæã¤ã
*/
@@ -39,6 +44,15 @@ class I18nAlias {
public static final Comparator ååææ°ã0以ä¸ã®å ´åã¯ã
* ç¶æ³ã«å¿ãã¦ä¼¸é·ããé£çµãªã¹ããç¨æãããã
+ *
* @param primaryNum ãã©ã¤ããªååææ°ã
* @param globalNum ã°ãã¼ãã«ååææ°ã
*/
@@ -60,15 +76,15 @@ class I18nAlias {
super();
if(primaryNum <= 0){
- this.primaryNameList = new LinkedList ãã©ã¤ããªåãã°ãã¼ãã«åå
±ã
* ç¶æ³ã«å¿ãã¦ä¼¸é·ããé£çµãªã¹ããç¨æãããã
*/
@@ -103,6 +120,20 @@ class I18nAlias {
DocumentBuilderFactory factory;
factory = DocumentBuilderFactory.newInstance();
+ factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
+ factory.setFeature(F_EXTERNAL_GENERAL_ENTITIES, false);
+ factory.setFeature(F_EXTERNAL_PARAMETER_ENTITIES, false);
+ factory.setFeature(F_LOAD_EXTERNAL_DTD, false);
+
+ // unsafe but we use DOCTYPE
+ factory.setFeature(F_DISALLOW_DOCTYPE_DECL, false);
+
+ factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, "");
+ factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_SCHEMA, "");
+
+ factory.setXIncludeAware(false);
+ factory.setExpandEntityReferences(false);
+
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(is);
@@ -131,7 +162,9 @@ class I18nAlias {
/**
* ãã©ã¤ããªåã®ä»£è¡¨ãã²ã¨ã¤è¿ãã
+ *
* å¿
ãåå¨ããªããã°ãªããªãã
+ *
* @return æåã®ãã©ã¤ããªå
*/
public String getTopPrimaryName(){