1. 개요
가우스 관련 오류 내용이다.
2. 오류
- 가우스를 처음 설치한 디렉토리와 어플리케이션이 실행되는 디렉토리가 다를 때
- 예를 들어 이클립스 wst 환경일 때
SEVERE: [GAUCE] GauceFilter: °¡¿?½º 4.0 ¼¹? ¶???¼¾½º¸? °?????´? ?ß ¿?·?°¡ ¹ß????¿´½?´?´?. com.gauce.engine.H: °¡¿?½º ¼¹? 4.0?? ¼³?¡?? ?ð·º??¸®(C:\workspace\testProject\WebContent\WEB-INF) ??¿??? ?ð·º??¸®¿¡¼ °¡¿?½º¸? ½????? ¼? ¾ø½?´?´?. C:\project_box\nwpms\WebContent\nwpms\WEB-INF at com.gauce.filter.GauceFilter.A(Unknown Source)
3. 원인
GauceFilter에 관련 로직이 들어있다.
Object localObject1 = new File(localFile1, "lib"); File[] arrayOfFile = ((File)localObject1).listFiles(); URL[] arrayOfURL = new URL[arrayOfFile.length]; for (int i = 0; i < arrayOfFile.length; i++) { arrayOfURL[i] = arrayOfFile[i].toURL(); } URLClassLoader localURLClassLoader = new URLClassLoader(arrayOfURL, getClass().getClassLoader()); Class localClass = localURLClassLoader.loadClass("cryptix.jce.provider.CryptixCrypto"); Provider localProvider = (Provider)localClass.newInstance(); Security.addProvider(localProvider); String str1 = new D().toString(); if (str1.length() == 0) { throw new H(this.sm.getString("GauceFilter.checkLicense.noPrivateKey")); } byte[] arrayOfByte1 = new BASE64Decoder().decodeBuffer(str1); File localFile2 = new File(localFile1, ".registry"); if (!localFile2.exists()) { throw new FileNotFoundException(this.sm.getString("GauceFilter.checkLicense.noRegistry", localFile2.getName())); } FileInputStream localFileInputStream1 = new FileInputStream(localFile2); byte[] arrayOfByte3 = new byte[localFileInputStream1.available()]; localFileInputStream1.read(arrayOfByte3); localFileInputStream1.close(); String str2 = new String(arrayOfByte3, "8859_1"); byte[] arrayOfByte2 = new BASE64Decoder().decodeBuffer(str2); ByteArrayOutputStream localByteArrayOutputStream = new ByteArrayOutputStream(); int j = 0; KeyFactory localKeyFactory = KeyFactory.getInstance("RSA"); PKCS8EncodedKeySpec localPKCS8EncodedKeySpec = new PKCS8EncodedKeySpec(arrayOfByte1); RSAPrivateKey localRSAPrivateKey = (RSAPrivateKey)localKeyFactory.generatePrivate(localPKCS8EncodedKeySpec); Cipher localCipher = Cipher.getInstance("RSA/ECB/PKCS#1"); localCipher.init(2, localRSAPrivateKey); int k = localCipher.getBlockSize(); int m = 0; while (m < arrayOfByte2.length) { j = arrayOfByte2.length - m <= k ? arrayOfByte2.length - m : k; localByteArrayOutputStream.write(localCipher.doFinal(arrayOfByte2, m, j)); m += k; } ByteArrayInputStream localByteArrayInputStream = new ByteArrayInputStream(localByteArrayOutputStream.toByteArray()); Properties localProperties1 = new Properties(); localProperties1.load(localByteArrayInputStream); String str3 = localProperties1.getProperty("gauce.install.os"); if (!str3.equals(System.getProperty("os.name"))) { throw new H(this.sm.getString("GauceFilter.checkLicense.differentOS")); } String str4 = localProperties1.getProperty("gauce.install.dir"); if (!str4.equals(localFile1.getCanonicalPath())) { throw new H(this.sm.getString("GauceFilter.checkLicense.differentDir", str4, localFile1.getCanonicalPath())); } Document localDocument = null; File localFile3 = new File(localFile1, "license/license.gauce"); if (!localFile3.exists()) { throw new FileNotFoundException(this.sm.getString("GauceFilter.checkLicense.noLicense", localFile3.getName())); } FileInputStream localFileInputStream2 = new FileInputStream(localFile3); InputSource localInputSource = new InputSource(localFileInputStream2); DocumentBuilderFactory localDocumentBuilderFactory = DocumentBuilderFactory.newInstance(); localDocumentBuilderFactory.setNamespaceAware(true); DocumentBuilder localDocumentBuilder = localDocumentBuilderFactory.newDocumentBuilder(); try { localDocument = localDocumentBuilder.parse(localInputSource); } catch (Exception localException) { throw new SAXException(this.sm.getString("GauceFilter.checkLicense.invalidLicenseFormat"), localException); }