blob: 65a4854d0adf45a346d76031bf2cecfac15467f1 [file] [log] [blame]
/*
* Copyright 2004,2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.ws.secpolicy.model;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.impl.builder.StAXOMBuilder;
import org.apache.neethi.Assertion;
import org.apache.neethi.Policy;
import org.apache.neethi.PolicyEngine;
import org.apache.ws.secpolicy.SPConstants;
import java.util.Iterator;
import java.util.List;
import junit.framework.TestCase;
public class SecpolicyModelTest extends TestCase {
public void testSymmBinding() {
try {
Policy p = this.getPolicy("test-resources/policy-symm-binding.xml");
List assertions = (List)p.getAlternatives().next();
boolean symmBindingFound = false;
for (Iterator iter = assertions.iterator(); iter.hasNext();) {
Assertion assertion = (Assertion) iter.next();
if(assertion instanceof SymmetricBinding) {
symmBindingFound = true;
SymmetricBinding binding = (SymmetricBinding)assertion;
assertEquals("IncludeTimestamp assertion not processed", true, binding.isIncludeTimestamp());
ProtectionToken protectionToken = binding.getProtectionToken();
assertNotNull("ProtectionToken missing", protectionToken);
Token token = protectionToken.getProtectionToken();
if(token instanceof X509Token) {
assertEquals("incorrect X509 token versin and type",
SPConstants.WSS_X509_V3_TOKEN10,
((X509Token) token).getTokenVersionAndType());
} else {
fail("ProtectionToken must contain a X509Token assertion");
}
}
}
//The Asymm binding mean is not built in the policy processing :-(
assertTrue("SymmetricBinding not porcessed", symmBindingFound);
} catch (Exception e) {
e.printStackTrace();
fail(e.getMessage());
}
}
public void testAsymmBinding() {
try {
this.getPolicy("test-resources/policy-asymm-binding.xml");
} catch (Exception e) {
e.printStackTrace();
fail(e.getMessage());
}
}
public void testTransportBinding() {
try {
this.getPolicy("test-resources/policy-transport-binding.xml");
} catch (Exception e) {
e.printStackTrace();
fail(e.getMessage());
}
}
private Policy getPolicy(String filePath) throws Exception {
StAXOMBuilder builder = new StAXOMBuilder(filePath);
OMElement elem = builder.getDocumentElement();
return PolicyEngine.getPolicy(elem);
}
}