01: /*
02: * The contents of this file are subject to the terms
03: * of the Common Development and Distribution License
04: * (the "License"). You may not use this file except
05: * in compliance with the License.
06: *
07: * You can obtain a copy of the license at
08: * https://jwsdp.dev.java.net/CDDLv1.0.html
09: * See the License for the specific language governing
10: * permissions and limitations under the License.
11: *
12: * When distributing Covered Code, include this CDDL
13: * HEADER in each file and include the License file at
14: * https://jwsdp.dev.java.net/CDDLv1.0.html If applicable,
15: * add the following below this CDDL HEADER, with the
16: * fields enclosed by brackets "[]" replaced with your
17: * own identifying information: Portions Copyright [yyyy]
18: * [name of copyright owner]
19: */
20: /*
21: * $Id: Evidence.java,v 1.5 2007/01/08 16:06:05 shyam_rao Exp $
22: */
23:
24: /*
25: * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
26: * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
27: */
28:
29: package com.sun.xml.wss.saml.assertion.saml11.jaxb20;
30:
31: import com.sun.xml.wss.saml.SAMLException;
32:
33: import com.sun.xml.wss.logging.LogDomainConstants;
34: import com.sun.xml.wss.saml.internal.saml11.jaxb20.EvidenceType;
35: import com.sun.xml.wss.saml.util.SAMLJAXBUtil;
36: import java.util.List;
37: import java.util.logging.Logger;
38:
39: import javax.xml.bind.JAXBContext;
40:
41: /**
42: * The <code>Evidence</code> element specifies an assertion either by
43: * reference or by value. An assertion is specified by reference to the value of
44: * the assertion's <code>AssertionIDReference</code> element.
45: * An assertion is specified by value by including the entire
46: * <code>Assertion</code> object
47: */
48: public class Evidence extends EvidenceType implements
49: com.sun.xml.wss.saml.Evidence {
50:
51: protected static final Logger log = Logger.getLogger(
52: LogDomainConstants.WSS_API_DOMAIN,
53: LogDomainConstants.WSS_API_DOMAIN_BUNDLE);
54:
55: /**
56: * Constructs an <code>Evidence</code> object from a block of existing XML
57: * that has already been built into a DOM.
58: *
59: * @param assertionSpecifierElement A <code>org.w3c.dom.Element</code>
60: * representing DOM tree for <code>Evidence</code> object.
61: * @exception SAMLException if it could not process the Element properly,
62: * implying that there is an error in the sender or in the
63: * element definition.
64: */
65: public static EvidenceType fromElement(org.w3c.dom.Element element)
66: throws SAMLException {
67: try {
68: JAXBContext jc = SAMLJAXBUtil.getJAXBContext();
69:
70: javax.xml.bind.Unmarshaller u = jc.createUnmarshaller();
71: return (EvidenceType) u.unmarshal(element);
72: } catch (Exception ex) {
73: throw new SAMLException(ex.getMessage());
74: }
75: }
76:
77: private void setAssertionIDReferenceOrAssertion(List evidence) {
78: this .assertionIDReferenceOrAssertion = evidence;
79: }
80:
81: /**
82: * Constructs an Evidence from a Set of <code>Assertion</code> and
83: * <code>AssertionIDReference</code> objects.
84: *
85: * @param assertionIDRef Set of <code>AssertionIDReference</code> objects.
86: * @param assertion Set of <code>Assertion</code> objects.
87: * @exception SAMLException if either Set is empty or has invalid object.
88: */
89: public Evidence(List assertionIDRef, List assertion) {
90:
91: if (assertionIDRef != null)
92: setAssertionIDReferenceOrAssertion(assertionIDRef);
93: else if (assertion != null)
94: setAssertionIDReferenceOrAssertion(assertion);
95: }
96: }
|