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);
}