Author: psharples
Date: Wed Aug 22 17:52:30 2012
New Revision: 1376159
URL: http://svn.apache.org/viewvc?rev=1376159&view=rev
Log:
Fixed problem with the schema path for the digsig verification. In a
development setup the schema is nested down under the /src folder. However, a
release build (war, standalone etc) will not have a /src folder. So updated
the code to take a reference obtained from the servlet context, which gets a
real runtime path, found under the WEB-INF folder.
Modified:
incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetsController.java
incubator/wookie/trunk/src/org/apache/wookie/server/ContextListener.java
incubator/wookie/trunk/src/org/apache/wookie/util/digitalsignature/DigitalSignatureProcessor.java
Modified:
incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetsController.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetsController.java?rev=1376159&r1=1376158&r2=1376159&view=diff
==============================================================================
---
incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetsController.java
(original)
+++
incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetsController.java
Wed Aug 22 17:52:30 2012
@@ -270,6 +270,9 @@ public class WidgetsController extends C
fac.setStartPageProcessor(new StartPageProcessor());
if (VERIFYSIGNATURE) {
KeyStore keyStore = KeyStore.getInstance("JKS");
+ String digSigSchema = getServletContext()
+
.getRealPath("/WEB-INF/classes/org/apache/wookie/util/digitalsignature/xmldsig-core-schema.xsd");
+
InputStream stream =
getServletContext().getResourceAsStream("/WEB-INF/classes/" + KEYSTORE);
if (stream == null) {
stream =
getServletContext().getResourceAsStream("/WEB-INF/classes/" + "generated-" +
KEYSTORE);
@@ -281,13 +284,13 @@ public class WidgetsController extends C
keyStore.store(fos, PASSWORD.toCharArray());
fos.close();
fac.setDigitalSignatureParser(new
DigitalSignatureProcessor(keyStore,
- REJECTINVALID, REJECTUNTRUSTED));
+ digSigSchema, REJECTINVALID, REJECTUNTRUSTED));
_logger.info(localizedMessages.getString("WidgetHotDeploy.4"));
} else {
keyStore.load(stream, PASSWORD.toCharArray());
stream.close();
fac.setDigitalSignatureParser(new
DigitalSignatureProcessor(keyStore,
- REJECTINVALID, REJECTUNTRUSTED));
+ digSigSchema, REJECTINVALID, REJECTUNTRUSTED));
}
}
W3CWidget widgetModel = fac.parse(zipFile);
Modified:
incubator/wookie/trunk/src/org/apache/wookie/server/ContextListener.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/server/ContextListener.java?rev=1376159&r1=1376158&r2=1376159&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/server/ContextListener.java
(original)
+++ incubator/wookie/trunk/src/org/apache/wookie/server/ContextListener.java
Wed Aug 22 17:52:30 2012
@@ -199,6 +199,8 @@ public class ContextListener implements
fac.setStartPageProcessor(new
StartPageProcessor());
if (VERIFYSIGNATURE) {
KeyStore keyStore =
KeyStore.getInstance("JKS");
+ String digSigSchema = context
+
.getRealPath("/WEB-INF/classes/org/apache/wookie/util/digitalsignature/xmldsig-core-schema.xsd");
InputStream stream =
context.getResourceAsStream("/WEB-INF/classes/" + KEYSTORE);
if (stream == null) {
stream =
context.getResourceAsStream("/WEB-INF/classes/" + "generated-" + KEYSTORE);
@@ -210,13 +212,13 @@ public class ContextListener implements
keyStore.store(fos,
PASSWORD.toCharArray());
fos.close();
fac.setDigitalSignatureParser(new
DigitalSignatureProcessor(keyStore,
- REJECTINVALID, REJECTUNTRUSTED));
+ digSigSchema, REJECTINVALID,
REJECTUNTRUSTED));
_logger.info(localizedMessages.getString("WidgetHotDeploy.4"));
} else {
keyStore.load(stream,
PASSWORD.toCharArray());
stream.close();
fac.setDigitalSignatureParser(new
DigitalSignatureProcessor(keyStore,
- REJECTINVALID, REJECTUNTRUSTED));
+ digSigSchema, REJECTINVALID,
REJECTUNTRUSTED));
}
}
Modified:
incubator/wookie/trunk/src/org/apache/wookie/util/digitalsignature/DigitalSignatureProcessor.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/util/digitalsignature/DigitalSignatureProcessor.java?rev=1376159&r1=1376158&r2=1376159&view=diff
==============================================================================
---
incubator/wookie/trunk/src/org/apache/wookie/util/digitalsignature/DigitalSignatureProcessor.java
(original)
+++
incubator/wookie/trunk/src/org/apache/wookie/util/digitalsignature/DigitalSignatureProcessor.java
Wed Aug 22 17:52:30 2012
@@ -64,10 +64,12 @@ public class DigitalSignatureProcessor i
// certificate located in the trusted keystore.
private boolean rejectUntrusted;
private HashSet<String> filesList = new HashSet<String>();
+ private String signatureSchemaFile;
- public DigitalSignatureProcessor(KeyStore keyStore, boolean rejectInvalid,
+ public DigitalSignatureProcessor(KeyStore keyStore, String schemaPath,
boolean rejectInvalid,
boolean rejectUntrusted) {
this.keystore = keyStore;
+ this.signatureSchemaFile = schemaPath;
this.rejectInvalid = rejectInvalid;
this.rejectUntrusted = rejectUntrusted;
// to make it default to reject invalid signatures if signatures with
@@ -176,8 +178,6 @@ public class DigitalSignatureProcessor i
throws Exception {
boolean schemaValidate = true;
boolean isValid = false;
- final String signatureSchemaFile =
"src/org/apache/wookie/util/digitalsignature/xmldsig-core"
- + "-schema.xsd";
if (schemaValidate) {
_logger.debug("Doing schema validation.");