removed definition parsers, may be picked up again later
parent
b986b30695
commit
fec6a3a876
|
@ -1,22 +0,0 @@
|
|||
package org.mitre.jwt.signer.service.impl;
|
||||
|
||||
import org.springframework.beans.factory.xml.NamespaceHandlerSupport;
|
||||
|
||||
/**
|
||||
* Support class for implementing custom jwt-signer namespace
|
||||
*
|
||||
* @author nemonik
|
||||
*
|
||||
*/
|
||||
public class JwtSignerNamespaceHandler extends NamespaceHandlerSupport {
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.springframework.beans.factory.xml.NamespaceHandler#init()
|
||||
*/
|
||||
@Override
|
||||
public void init() {
|
||||
registerBeanDefinitionParser("keystore", new KeystoreDefinitionParser());
|
||||
registerBeanDefinitionParser("service", new ServiceDefinitionParser());
|
||||
}
|
||||
|
||||
}
|
|
@ -1,68 +0,0 @@
|
|||
package org.mitre.jwt.signer.service.impl;
|
||||
|
||||
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
|
||||
import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
|
||||
import org.springframework.beans.factory.xml.ParserContext;
|
||||
import org.springframework.core.io.Resource;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
/**
|
||||
* Needed to parse and define just a single BeanDefinition for the KeyStore
|
||||
*
|
||||
* @author nemonik
|
||||
*
|
||||
*/
|
||||
public class KeystoreDefinitionParser extends
|
||||
AbstractSingleBeanDefinitionParser {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see
|
||||
* org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser
|
||||
* #doParse(org.w3c.dom.Element,
|
||||
* org.springframework.beans.factory.xml.ParserContext,
|
||||
* org.springframework.beans.factory.support.BeanDefinitionBuilder)
|
||||
*/
|
||||
@Override
|
||||
protected void doParse(Element element, ParserContext parserContext,
|
||||
BeanDefinitionBuilder builder) {
|
||||
|
||||
String password = element.getAttribute("password");
|
||||
if (StringUtils.hasText(password)) {
|
||||
builder.addConstructorArgValue(password);
|
||||
}
|
||||
|
||||
String location = element.getAttribute("location");
|
||||
|
||||
if (!StringUtils.hasText(location)) {
|
||||
parserContext.getReaderContext().error(
|
||||
"A location must be supplied on a keystore element.",
|
||||
element);
|
||||
} else {
|
||||
|
||||
Resource resource = parserContext.getReaderContext().getResourceLoader().getResource(location);
|
||||
|
||||
if (!resource.exists()) {
|
||||
parserContext.getReaderContext().error(
|
||||
"The location supplied (" + location + ") on the keystore element must exist.",
|
||||
element);
|
||||
} else {
|
||||
builder.addConstructorArgValue(resource);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see
|
||||
* org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser
|
||||
* #getBeanClass(org.w3c.dom.Element)
|
||||
*/
|
||||
@Override
|
||||
protected Class<?> getBeanClass(Element element) {
|
||||
return KeyStore.class;
|
||||
}
|
||||
}
|
|
@ -1,178 +0,0 @@
|
|||
package org.mitre.jwt.signer.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.mitre.jwt.signer.impl.EcdsaSigner;
|
||||
import org.mitre.jwt.signer.impl.HmacSigner;
|
||||
import org.mitre.jwt.signer.impl.RsaSigner;
|
||||
import org.springframework.beans.BeanMetadataElement;
|
||||
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
|
||||
import org.springframework.beans.factory.support.ManagedList;
|
||||
import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
|
||||
import org.springframework.beans.factory.xml.ParserContext;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.util.xml.DomUtils;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
/**
|
||||
* Needed to parse and define just a single BeanDefinition for the
|
||||
* JwtSigningAndValidationServiceDefault
|
||||
*
|
||||
* @author nemonik
|
||||
*
|
||||
*/
|
||||
public class ServiceDefinitionParser extends AbstractSingleBeanDefinitionParser {
|
||||
|
||||
private static Log logger = LogFactory.getLog(ServiceDefinitionParser.class);
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see
|
||||
* org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser
|
||||
* #doParse(org.w3c.dom.Element,
|
||||
* org.springframework.beans.factory.xml.ParserContext,
|
||||
* org.springframework.beans.factory.support.BeanDefinitionBuilder)
|
||||
*/
|
||||
@Override
|
||||
protected void doParse(Element element, ParserContext parserContext,
|
||||
BeanDefinitionBuilder builder) {
|
||||
|
||||
ManagedList<BeanMetadataElement> signers = new ManagedList<BeanMetadataElement>();
|
||||
|
||||
List<Element> signerElements = DomUtils.getChildElementsByTagName(
|
||||
element, new String[] { "rsa", "ecdsa", "hmac" });
|
||||
|
||||
for (Element signerElement : signerElements) {
|
||||
|
||||
if (signerElement.getTagName().contains("rsa")) {
|
||||
|
||||
logger.debug("parsing rsa element");
|
||||
|
||||
BeanDefinitionBuilder signer = BeanDefinitionBuilder
|
||||
.rootBeanDefinition(RsaSigner.class);
|
||||
|
||||
String bits = signerElement.getAttribute("bits");
|
||||
if (StringUtils.hasText(bits)) {
|
||||
signer.addConstructorArgValue(RsaSigner.Algorithm.PREPEND.concat(bits));
|
||||
} else {
|
||||
signer.addConstructorArgValue(RsaSigner.Algorithm.DEFAULT);
|
||||
}
|
||||
|
||||
String keystoreRef = signerElement.getAttribute("keystore-ref");
|
||||
if (!StringUtils.hasText(keystoreRef)) {
|
||||
parserContext
|
||||
.getReaderContext()
|
||||
.error("A keystore-ref must be supplied with the definition of a rsa.",
|
||||
signerElement);
|
||||
} else {
|
||||
signer.addConstructorArgReference(keystoreRef);
|
||||
}
|
||||
|
||||
String alias = signerElement.getAttribute("key-alias");
|
||||
if (!StringUtils.hasText(alias)) {
|
||||
parserContext
|
||||
.getReaderContext()
|
||||
.error("An key-alias must be supplied with the definition of a rsa.",
|
||||
signerElement);
|
||||
} else {
|
||||
signer.addConstructorArgValue(alias);
|
||||
}
|
||||
|
||||
String password = signerElement.getAttribute("password");
|
||||
if (StringUtils.hasText(password)) {
|
||||
signer.addConstructorArgValue(password);
|
||||
} else {
|
||||
signer.addConstructorArgValue(RsaSigner.DEFAULT_PASSWORD);
|
||||
}
|
||||
|
||||
signers.add(signer.getBeanDefinition());
|
||||
|
||||
} else if (signerElement.getTagName().contains("ecdsa")) {
|
||||
|
||||
logger.debug("parsing ecdsa element");
|
||||
|
||||
BeanDefinitionBuilder signer = BeanDefinitionBuilder
|
||||
.rootBeanDefinition(EcdsaSigner.class);
|
||||
|
||||
String bits = signerElement.getAttribute("bits");
|
||||
if (StringUtils.hasText(bits)) {
|
||||
signer.addConstructorArgValue(EcdsaSigner.Algorithm.PREPEND.concat(bits));
|
||||
} else {
|
||||
signer.addConstructorArgValue(EcdsaSigner.Algorithm.DEFAULT);
|
||||
}
|
||||
|
||||
String keystoreRef = signerElement.getAttribute("keystore-ref");
|
||||
if (!StringUtils.hasText(keystoreRef)) {
|
||||
parserContext
|
||||
.getReaderContext()
|
||||
.error("A keystore-ref must be supplied with the definition of a ecdsa.",
|
||||
signerElement);
|
||||
} else {
|
||||
signer.addConstructorArgReference(keystoreRef);
|
||||
}
|
||||
|
||||
String alias = signerElement.getAttribute("key-alias");
|
||||
if (!StringUtils.hasText(alias)) {
|
||||
parserContext
|
||||
.getReaderContext()
|
||||
.error("An key-alias must be supplied with the definition of a ecdsa.",
|
||||
signerElement);
|
||||
} else {
|
||||
signer.addConstructorArgValue(alias);
|
||||
}
|
||||
|
||||
String password = signerElement.getAttribute("password");
|
||||
if (StringUtils.hasText(password)) {
|
||||
signer.addConstructorArgValue(password);
|
||||
} else {
|
||||
signer.addConstructorArgValue(EcdsaSigner.DEFAULT_PASSWORD);
|
||||
}
|
||||
|
||||
signers.add(signer.getBeanDefinition());
|
||||
|
||||
} else if (signerElement.getTagName().contains("hmac")) {
|
||||
|
||||
logger.debug("parsing hmac element");
|
||||
|
||||
BeanDefinitionBuilder signer = BeanDefinitionBuilder
|
||||
.rootBeanDefinition(HmacSigner.class);
|
||||
|
||||
String bits = signerElement.getAttribute("bits");
|
||||
if (StringUtils.hasText(bits)) {
|
||||
signer.addConstructorArgValue("HS".concat(bits));
|
||||
} else {
|
||||
signer.addConstructorArgValue(HmacSigner.Algorithm.DEFAULT);
|
||||
}
|
||||
|
||||
String passphrase = signerElement.getAttribute("passphrase");
|
||||
if (!StringUtils.hasText(passphrase)) {
|
||||
parserContext
|
||||
.getReaderContext()
|
||||
.error("A passphrase must be supplied with the definition of a hmac.",
|
||||
signerElement);
|
||||
} else {
|
||||
signer.addConstructorArgValue(passphrase);
|
||||
}
|
||||
|
||||
signers.add(signer.getBeanDefinition());
|
||||
}
|
||||
}
|
||||
|
||||
builder.addPropertyValue("signers", signers);
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see
|
||||
* org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser
|
||||
* #getBeanClass(org.w3c.dom.Element)
|
||||
*/
|
||||
@Override
|
||||
protected Class<?> getBeanClass(Element element) {
|
||||
return JwtSigningAndValidationServiceDefault.class;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue