/* Copyright 2012-2015 SAP SE
*
* 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 eu.aniketos.securebpmn.xacml.pdp;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.List;
import java.util.Properties;
import java.util.Vector;
import org.apache.log4j.PropertyConfigurator;
import eu.aniketos.securebpmn.xacml.api.SecurityError;
import eu.aniketos.securebpmn.xacml.api.autho.AuthoAttribute;
import eu.aniketos.securebpmn.xacml.api.autho.AuthoResult;
import eu.aniketos.securebpmn.xacml.api.idm.IdInfo;
import com.sun.xacml.Constants;
import com.sun.xacml.ParsingException;
import com.sun.xacml.UnknownIdentifierException;
import com.sun.xacml.attr.TypeIdentifierConstants;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
public class ProductiveTest extends TestCase {
protected PDPServer pdp;
public static void main(String[] args) throws UnknownIdentifierException, ParsingException, IOException, SecurityError, URISyntaxException {
Properties log4jProps = new Properties();
log4jProps.load(new BufferedInputStream(new FileInputStream(new File("src/test/log4j.properties"))));
PropertyConfigurator.configure(log4jProps);
ProductiveTest test = new ProductiveTest();
test.setup();
test.foo();
}
private void setup() throws UnknownIdentifierException, ParsingException, FileNotFoundException {
pdp = new PDPServer(new File("src/test/productive-config.xml"));
}
protected void foo() throws FileNotFoundException, ParsingException, UnknownIdentifierException, SecurityError, URISyntaxException {
List<AuthoAttribute> attributes = new Vector<AuthoAttribute>();
attributes.add(
new AuthoAttribute(
Constants.SUBJECT_CAT,
Constants.SUBJECT_ID,
TypeIdentifierConstants.STRING_URI,
"root"));
attributes.add(
new AuthoAttribute(
Constants.SUBJECT_CAT,
URI.create("urn:subject:department"),
TypeIdentifierConstants.STRING_URI,
"test1"));
attributes.add(
new AuthoAttribute(
Constants.RESOURCE_CAT,
URI.create("urn:patient:department"),
TypeIdentifierConstants.STRING_URI,
"test1"));
// RequestCtx request = XACMLDecoder.decodeRequestCtx(null, new URI("MedicalRecord"), "read", attributes);
//
//
// System.out.println("REQUEST:\n" + XACMLEncoder.encodeRequestCtx(request));
AuthoResult result = pdp.evaluate(new IdInfo("root", null, null), "MedicalRecord", "read", attributes);
//ResponseCtx response = pdp.evaluate(request);
System.out.println("RESPONE:\n" + result);
pdp.unload();
}
/**
* @return the suite of tests being tested
*/
public static Test suite()
{
return new TestSuite( ProductiveTest.class );
}
/**
* Rigourous Test :-)
*/
public void testApp()
{
assertTrue( true );
}
}