本文整理了Java中javax.xml.crypto.dsig.Reference
类的一些代码示例,展示了Reference
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Reference
类的具体详情如下:
包路径:javax.xml.crypto.dsig.Reference
类名称:Reference
[英]A representation of the Reference
element as defined in the W3C Recommendation for XML-Signature Syntax and Processing. The XML schema is defined as: <<$0$>>
A Reference
instance may be created by invoking one of the XMLSignatureFactory#newReference methods of the XMLSignatureFactory class; for example:
XMLSignatureFactory factory = XMLSignatureFactory.getInstance("DOM");
Reference ref = factory.newReference
("http://www.ietf.org/rfc/rfc3275.txt",
factory.newDigestMethod(DigestMethod.SHA1, null));
[中][W3C Recommendation for XML-Signature Syntax and Processing](http://www.w3.org/TR/xmldsig-core/)中定义的Reference
元素的表示形式。XML模式定义为:<<$0$>>
Reference
实例可以通过调用XMLSignatureFactory类的一个XMLSignatureFactory#newReference方法来创建;例如:
XMLSignatureFactory factory = XMLSignatureFactory.getInstance("DOM");
Reference ref = factory.newReference
("http://www.ietf.org/rfc/rfc3275.txt",
factory.newDigestMethod(DigestMethod.SHA1, null));
代码示例来源:origin: org.apache.poi/poi-ooxml
public int compare(Reference o1, Reference o2) {
return o1.getURI().compareTo(o2.getURI());
}
});
代码示例来源:origin: org.apache.poi/poi-ooxml
xmlSignature.sign(xmlSignContext);
List<Reference> manifestReferences = manifest.getReferences();
for (Reference manifestReference : manifestReferences) {
if (manifestReference.getDigestValue() != null) {
continue;
List<Reference> signedInfoReferences = signedInfo.getReferences();
for (Reference signedInfoReference : signedInfoReferences) {
DOMReference domReference = (DOMReference)signedInfoReference;
代码示例来源:origin: org.picketlink/picketlink-fed
boolean coreValidity = signature.validate(valContext);
boolean sv = signature.getSignatureValue().validate(valContext);
log.trace("Signature validation status: " + sv);
List<Reference> references = signature.getSignedInfo().getReferences();
for (Reference ref : references)
log.trace("[Ref id=" + ref.getId() + ":uri=" + ref.getURI() + "]validity status:"
+ ref.validate(valContext));
代码示例来源:origin: se.vgregion.commons-util/commons-util-core-bc-composite-security
boolean coreValidity = signature.validate(valContext);
boolean sv = signature.getSignatureValue().validate(valContext);
System.out.println("signature validation status: " + sv);
Iterator i = signature.getSignedInfo().getReferences().iterator();
for (int j=0; i.hasNext(); j++) {
boolean refValid =
((Reference) i.next()).validate(valContext);
System.out.println("ref["+j+"] validity status: " + refValid);
代码示例来源:origin: org.apache.juddi/uddi-tck-base
valContext.setProperty("javax.xml.crypto.dsig.cacheReference", Boolean.TRUE);
XMLSignature signature = fac.unmarshalXMLSignature(valContext);
boolean coreValidity = signature.validate(valContext);
boolean sv = signature.getSignatureValue().validate(valContext);
System.out.println("signature validation status: " + sv);
Iterator<Reference> i = signature.getSignedInfo().getReferences().iterator();
System.out.println("---------------------------------------------");
for (int j = 0; i.hasNext(); j++) {
Reference ref = (Reference) i.next();
boolean refValid = ref.validate(valContext);
System.out.println("ref[" + j + "] validity status: " + refValid);
System.out.println("Ref type: " + ref.getType() + ", URI: " + ref.getURI());
for (Object xform : ref.getTransforms()) {
System.out.println("Transform: " + xform);
String calcDigValStr = digestToString(ref.getCalculatedDigestValue());
String expectedDigValStr = digestToString(ref.getDigestValue());
System.out.println(" Calc Digest: " + calcDigValStr);
System.out.println("Expected Digest: " + expectedDigValStr);
InputStream is = ref.getDigestInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
代码示例来源:origin: org.apache.wss4j/wss4j-ws-security-dom
xmlSignature.getSignedInfo().getSignatureMethod().getAlgorithm();
for (Object refObject : xmlSignature.getSignedInfo().getReferences()) {
Reference reference = (Reference)refObject;
if ("".equals(reference.getURI())
|| reference.getURI().equals(samlAssertion.getId())
|| reference.getURI().equals("#" + samlAssertion.getId())) {
WSDataRef ref = new WSDataRef();
ref.setWsuId(reference.getURI());
ref.setProtectedElement(token);
ref.setAlgorithm(signatureMethod);
ref.setDigestAlgorithm(reference.getDigestMethod().getAlgorithm());
ref.setDigestValue(reference.getDigestValue());
List<Transform> transforms = (List<Transform>)reference.getTransforms();
List<String> transformAlgorithms = new ArrayList<>(transforms.size());
for (Transform transform : transforms) {
代码示例来源:origin: be.fedict.eid-dss/eid-dss-document-odf
private void checkIntegrity(XMLSignature xmlSignature, byte[] document,
byte[] originalDocument) throws IOException {
if (null != originalDocument) {
throw new IllegalArgumentException(
"cannot perform original document verifications");
}
Set<String> dsReferenceUris = new HashSet<String>();
SignedInfo signedInfo = xmlSignature.getSignedInfo();
@SuppressWarnings("unchecked")
List<Reference> references = signedInfo.getReferences();
for (Reference reference : references) {
String referenceUri = reference.getURI();
dsReferenceUris.add(referenceUri);
}
ZipInputStream odfZipInputStream = new ZipInputStream(
new ByteArrayInputStream(document));
ZipEntry zipEntry;
while (null != (zipEntry = odfZipInputStream.getNextEntry())) {
if (false == ODFUtil.isToBeSigned(zipEntry)) {
continue;
}
String uri = zipEntry.getName().replaceAll(" ", "%20");
if (false == dsReferenceUris.contains(uri)) {
LOG.warn("no ds:Reference for ODF entry: " + zipEntry.getName());
throw new RuntimeException("no ds:Reference for ODF entry: "
+ zipEntry.getName());
}
}
}
}
代码示例来源:origin: org.apache.ws.security/wss4j
xmlSignature.getSignedInfo().getSignatureMethod().getAlgorithm();
checkSignatureMethod(signatureMethod);
xmlSignature.getSignedInfo().getCanonicalizationMethod().getAlgorithm();
checkC14nAlgorithm(c14nMethod);
for (Object refObject : xmlSignature.getSignedInfo().getReferences()) {
Reference reference = (Reference)refObject;
String digestMethod = reference.getDigestMethod().getAlgorithm();
Set<String> allowedDigestAlgorithms = algorithmSuite.getDigestAlgorithms();
if (!allowedDigestAlgorithms.isEmpty()
for (int i = 0; i < reference.getTransforms().size(); i++) {
Transform transform = (Transform)reference.getTransforms().get(i);
String algorithm = transform.getAlgorithm();
Set<String> allowedTransformAlgorithms =
代码示例来源:origin: be.fedict.eid-dss/eid-dss-document-zip
SignedInfo signedInfo = xmlSignature.getSignedInfo();
@SuppressWarnings("unchecked")
List<Reference> references = signedInfo.getReferences();
Set<String> referenceUris = new HashSet<String>();
for (Reference reference : references) {
String referenceUri = reference.getURI();
referenceUris.add(URLDecoder.decode(referenceUri, "UTF-8"));
if (null != reference.getType()) {
String digestAlgo = reference.getDigestMethod()
.getAlgorithm();
LOG.debug("ds:Reference digest algo: " + digestAlgo);
String referenceUri = reference.getURI();
LOG.debug("ds:Reference URI: " + referenceUri);
byte[] digestValue = reference.getDigestValue();
Set<String> referencedEntryNames = new HashSet<String>();
for (Reference reference : references) {
if (null != reference.getType()) {
continue;
referencedEntryNames.add(reference.getURI());
代码示例来源:origin: org.apache.ws.security/wss4j
) throws WSSecurityException {
List<WSDataRef> protectedRefs = new java.util.ArrayList<WSDataRef>();
List<?> referencesList = signedInfo.getReferences();
for (int i = 0; i < referencesList.size(); i++) {
Reference siRef = (Reference)referencesList.get(i);
String uri = siRef.getURI();
NodeSetData data = (NodeSetData)siRef.getDereferencedData();
if (data != null) {
java.util.Iterator<?> iter = data.iterator();
ref.setWsuId(uri);
ref.setProtectedElement(se);
ref.setAlgorithm(signedInfo.getSignatureMethod().getAlgorithm());
ref.setDigestAlgorithm(siRef.getDigestMethod().getAlgorithm());
List<Transform> transforms = (List<Transform>)siRef.getTransforms();
List<String> transformAlgorithms = new ArrayList<String>(transforms.size());
for (Transform transform : transforms) {
代码示例来源:origin: org.apache.ws.security/wss4j
) throws WSSecurityException {
for (Object object : xmlSignature.getObjects()) {
if (object instanceof XMLObject) {
XMLObject xmlObject = (XMLObject)object;
xmlSignature.getSignedInfo().getCanonicalizationMethod().getAlgorithm();
if (!WSConstants.C14N_EXCL_OMIT_COMMENTS.equals(c14nMethod)) {
throw new WSSecurityException(WSSecurityException.INVALID_SECURITY, "badC14nAlgo");
for (Object refObject : xmlSignature.getSignedInfo().getReferences()) {
Reference reference = (Reference)refObject;
if (reference.getTransforms().isEmpty()) {
throw new WSSecurityException(WSSecurityException.INVALID_SECURITY, "R5416");
for (int i = 0; i < reference.getTransforms().size(); i++) {
Transform transform = (Transform)reference.getTransforms().get(i);
String algorithm = transform.getAlgorithm();
if (!(WSConstants.C14N_EXCL_OMIT_COMMENTS.equals(algorithm)
throw new WSSecurityException(WSSecurityException.INVALID_SECURITY, "R5423");
if (i == (reference.getTransforms().size() - 1)
&& (!(WSConstants.C14N_EXCL_OMIT_COMMENTS.equals(algorithm)
|| STRTransform.TRANSFORM_URI.equals(algorithm)
代码示例来源:origin: be.fedict.eid-dss/eid-dss-document-asic
XMLSignature xmlSignature = xmlSignatureFactory
.unmarshalXMLSignature(domValidateContext);
boolean valid = xmlSignature.validate(domValidateContext);
if (!valid) {
continue;
SignedInfo signedInfo = xmlSignature.getSignedInfo();
@SuppressWarnings("unchecked")
List<Reference> references = signedInfo.getReferences();
Set<String> referenceUris = new HashSet<String>();
for (Reference reference : references) {
String referenceUri = reference.getURI();
referenceUris.add(URLDecoder.decode(referenceUri, "UTF-8"));
代码示例来源:origin: be.fedict.eid-dss/eid-dss-spi-utils
@SuppressWarnings("unchecked")
public static String findReferenceUri(XMLSignature xmlSignature, String type) {
SignedInfo signedInfo = xmlSignature.getSignedInfo();
List<Reference> references = signedInfo.getReferences();
for (Reference reference : references) {
if (type.equals(reference.getType())) {
return reference.getURI();
}
}
return null;
}
代码示例来源:origin: org.apache.santuario/xmlsec
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof Reference)) {
return false;
}
Reference oref = (Reference)o;
boolean idsEqual = id == null ? oref.getId() == null
: id.equals(oref.getId());
boolean urisEqual = uri == null ? oref.getURI() == null
: uri.equals(oref.getURI());
boolean typesEqual = type == null ? oref.getType() == null
: type.equals(oref.getType());
boolean digestValuesEqual =
Arrays.equals(digestValue, oref.getDigestValue());
return digestMethod.equals(oref.getDigestMethod()) && idsEqual &&
urisEqual && typesEqual &&
allTransforms.equals(oref.getTransforms()) && digestValuesEqual;
}
代码示例来源:origin: com.hynnet/xws-security
public void constructSignaturePolicy(SignedInfo signedInfo, boolean isBSP,SignaturePolicy policy){
List referencesList = signedInfo.getReferences();
//SignatureMethod sm = signedInfo.getSignatureMethod();
CanonicalizationMethod cm = signedInfo.getCanonicalizationMethod();
policy.isBSP(isBSP);
SignaturePolicy.FeatureBinding featureBinding = (SignaturePolicy.FeatureBinding )policy.getFeatureBinding();
featureBinding.setCanonicalizationAlgorithm(cm.getAlgorithm());
Iterator itr = referencesList.iterator();
while(itr.hasNext()){
Reference ref = (Reference) itr.next();
SignatureTarget.Transform transform = getSignatureTransform(ref);
SignatureTarget target = new SignatureTarget();
target.isBSP(isBSP);
if(transform != null){
target.addTransform(transform);
}
target.setDigestAlgorithm(ref.getDigestMethod().getAlgorithm());
if(ref.getURI().length() >0){
target.setValue(SecurableSoapMessage.getIdFromFragmentRef(ref.getURI()));
}else{
target.setValue(ref.getURI());
}
target.setType(SignatureTarget.TARGET_TYPE_VALUE_URI);
featureBinding.addTargetBinding(target);
}
}
代码示例来源:origin: be.fedict.eid-dss/eid-dss-document-xml
TransformationException, XMLSignatureException,
ReferenceNotInitializedException, Base64DecodingException {
SignedInfo signedInfo = xmlSignature.getSignedInfo();
@SuppressWarnings("unchecked")
List<Reference> references = signedInfo.getReferences();
for (Reference reference : references) {
LOG.debug("reference type: " + reference.getType());
if (null != reference.getType()) {
String digestAlgo = reference.getDigestMethod().getAlgorithm();
LOG.debug("ds:Reference digest algo: " + digestAlgo);
byte[] digestValue = reference.getDigestValue();
代码示例来源:origin: be.fedict.eid-applet/eid-applet-service-signer
boolean valid = xmlSignature.validate(domValidateContext);
List<XMLObject> objects = xmlSignature.getObjects();
XMLObject idPackageObject = null;
for (XMLObject object : objects) {
Set<String> remainingIdPackageObjectReferenceUris = new HashSet<String>();
for (Reference idPackageObjectReference : idPackageObjectReferences) {
idPackageObjectReferenceUris.add(idPackageObjectReference.getURI());
remainingIdPackageObjectReferenceUris.add(idPackageObjectReference.getURI());
代码示例来源:origin: org.apache.santuario/xmlsec
for (int i = 0, size = refs.size(); validateRefs && i < size; i++) {
Reference ref = refs.get(i);
boolean refValid = ref.validate(vc);
LOG.debug("Reference [{}] is valid: {}", ref.getURI(), refValid);
validateRefs &= refValid;
for (int k = 0; validateMans && k < rsize; k++) {
Reference ref = manRefs.get(k);
boolean refValid = ref.validate(vc);
LOG.debug(
"Manifest ref [{}] is valid: {}", ref.getURI(), refValid
);
validateMans &= refValid;
代码示例来源:origin: net.java.xades/jxades
public InvalidSignatureReason(Reference reference)
{
invalidSignature = InvalidSignature.BAD_REFERENCE;
StringBuilder sb = new StringBuilder();
sb.append("Bad reference");
String id = reference.getId();
if (id != null && (id = id.trim()).length() > 0)
sb.append(" with Id '").append(id).append("'");
String uri = reference.getURI();
if (uri != null && (uri = uri.trim()).length() > 0)
{
if (id != null && id.length() > 0)
sb.append(" and URI = '");
else
sb.append(" with URI = '");
sb.append(uri).append("'");
}
reason = sb.toString();
}
代码示例来源:origin: be.fedict.eid-applet/eid-applet-service-signer
List<Reference> manifestReferences = manifest.getReferences();
for (Reference manifestReference : manifestReferences) {
if (null != manifestReference.getDigestValue()) {
continue;
List<Reference> signedInfoReferences = signedInfo.getReferences();
for (Reference signedInfoReference : signedInfoReferences) {
DOMReference domReference = (DOMReference) signedInfoReference;
内容来源于网络,如有侵权,请联系作者删除!