1 /**
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
19
20 package org.apache.wss4j.common;
21
22 import org.w3c.dom.Element;
23
24
25 public class WSEncryptionPart {
26
27 private String name;
28 private String namespace;
29 private String encModifier;
30 private String encId;
31 private String id;
32 private Element element;
33 private boolean required = true;
34
35 /**
36 * An xpath expression pointing to the data element
37 * that may be specified in case the encryption part is of type
38 * <code>org.apache.wss4j.dom.WSConstants.PART_TYPE_ELEMENT</code>
39 */
40 private String xpath;
41
42 /**
43 * Constructor to initialize part structure with element, namespace, and modifier.
44 *
45 * This constructor initializes the parts structure to lookup for a
46 * fully qualified name of an element to encrypt or sign. The modifier
47 * controls how encryption encrypts the element, signature processing does
48 * not use the modifier information.
49 *
50 * <p/>
51 *
52 * Regarding the modifier ("Content" or "Element") refer to the W3C
53 * XML Encryption specification.
54 *
55 * @param nm Element's name
56 * @param nmspace Element's namespace
57 * @param encMod The encryption modifier
58 */
59 public WSEncryptionPart(String nm, String nmspace, String encMod) {
60 name = nm;
61 namespace = nmspace;
62 encModifier = encMod;
63 id = null;
64 }
65
66 /**
67 * Constructor to initialize part structure with element id.
68 *
69 * This constructor initializes the parts structure to lookup for a
70 * an element with the given Id to encrypt or sign.
71 *
72 * @param id The Id to of the element to process
73 */
74 public WSEncryptionPart(String id) {
75 this.id = id;
76 name = namespace = encModifier = null;
77 }
78
79 /**
80 * Constructor to initialize part structure with element id and modifier.
81 *
82 * This constructor initializes the parts structure to lookup for a
83 * an element with the given Id to encrypt or sign. The modifier
84 * controls how encryption encrypts the element, signature processing does
85 * not use the modifier information.
86 *
87 * <p/>
88 *
89 * Regarding the modifier ("Content" or "Element") refer to the W3C
90 * XML Encryption specification.
91 *
92 * @param id The Id to of the element to process
93 * @param encMod The encryption modifier
94 */
95 public WSEncryptionPart(String id, String encMod) {
96 this.id = id;
97 encModifier = encMod;
98 name = namespace = null;
99 }
100
101 /**
102 * @return the local name of the element to encrypt.
103 */
104 public String getName() {
105 return name;
106 }
107
108 /**
109 * @return the namespace of the element to encrypt
110 */
111 public String getNamespace() {
112 return namespace;
113 }
114
115 /**
116 * @return the encryption modifier
117 */
118 public String getEncModifier() {
119 return encModifier;
120 }
121
122 /**
123 * Set the encryption modifier
124 */
125 public void setEncModifier(String encModifier) {
126 this.encModifier = encModifier;
127 }
128
129 /**
130 * @return Returns the id.
131 */
132 public String getId() {
133 return id;
134 }
135
136 /**
137 * Set the id
138 * @param id
139 */
140 public void setId(String id) {
141 this.id = id;
142 }
143
144 public void setEncId(String id) {
145 encId = id;
146 }
147
148 public String getEncId() {
149 return encId;
150 }
151
152 /**
153 * @return the xpath
154 */
155 public String getXpath() {
156 return xpath;
157 }
158
159 /**
160 * @param xpath the xpath to set
161 */
162 public void setXpath(String xpath) {
163 this.xpath = xpath;
164 }
165
166 /**
167 * Set the DOM Element corresponding to this EncryptionPart
168 * @param element the DOM Element corresponding to this EncryptionPart
169 */
170 public void setElement(Element element) {
171 this.element = element;
172 }
173
174 /**
175 * Get the DOM Element corresponding to this EncryptionPart
176 * @return the DOM Element corresponding to this EncryptionPart
177 */
178 public Element getElement() {
179 return element;
180 }
181
182 public boolean isRequired() {
183 return required;
184 }
185
186 public void setRequired(boolean required) {
187 this.required = required;
188 }
189
190 }