eu.xtreemos.xosd.vops.xacml.utils
Class SimplePDP

java.lang.Object
  extended by eu.xtreemos.xosd.vops.xacml.utils.SimplePDP

public class SimplePDP
extends java.lang.Object

This is a simple, command-line driven XACML PDP. It acts both as an example of how to write a full-featured PDP and as a sample program that lets you evaluate requests against policies. See the comments for the main() method for correct usage.

Since:
1.1
Author:
seth proctor

Field Summary
private  com.sun.xacml.PDP pdp
           
 
Constructor Summary
SimplePDP()
          Default constructor.
SimplePDP(java.lang.String[] policyFiles)
          Constructor that takes an array of filenames, each of which contains an XACML policy, and sets up a PDP with access to these policies only.
 
Method Summary
 com.sun.xacml.ctx.ResponseCtx evaluate(com.sun.xacml.ctx.RequestCtx request)
           
 com.sun.xacml.ctx.ResponseCtx evaluateFromFile(java.lang.String requestFile)
          Evaluates the given request and returns the Response that the PDP will hand back to the PEP.
 com.sun.xacml.ctx.ResponseCtx evaluateFromRequest(com.sun.xacml.ctx.RequestCtx request)
          Evaluates the given request and returns the Response that the PDP will hand back to the PEP.
static void main(java.lang.String[] args)
          Main-line driver for this sample code.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

pdp

private com.sun.xacml.PDP pdp
Constructor Detail

SimplePDP

public SimplePDP()
          throws java.lang.Exception
Default constructor. This creates a SimplePDP with a PDP based on the configuration defined by the runtime property com.sun.xcaml.PDPConfigFile.

Throws:
java.lang.Exception

SimplePDP

public SimplePDP(java.lang.String[] policyFiles)
          throws java.lang.Exception
Constructor that takes an array of filenames, each of which contains an XACML policy, and sets up a PDP with access to these policies only. The PDP is configured programatically to have only a few specific modules.

Parameters:
policyFiles - an arry of filenames that specify policies
Throws:
java.lang.Exception
Method Detail

evaluateFromFile

public com.sun.xacml.ctx.ResponseCtx evaluateFromFile(java.lang.String requestFile)
                                               throws java.io.IOException,
                                                      com.sun.xacml.ParsingException
Evaluates the given request and returns the Response that the PDP will hand back to the PEP.

Parameters:
requestFile - the name of a file that contains a Request
Returns:
the result of the evaluation
Throws:
java.io.IOException - if there is a problem accessing the file
com.sun.xacml.ParsingException - if the Request is invalid

evaluateFromRequest

public com.sun.xacml.ctx.ResponseCtx evaluateFromRequest(com.sun.xacml.ctx.RequestCtx request)
                                                  throws java.io.IOException,
                                                         com.sun.xacml.ParsingException
Evaluates the given request and returns the Response that the PDP will hand back to the PEP.

Parameters:
requestFile - the name of a file that contains a Request
Returns:
the result of the evaluation
Throws:
java.io.IOException - if there is a problem accessing the file
com.sun.xacml.ParsingException - if the Request is invalid

evaluate

public com.sun.xacml.ctx.ResponseCtx evaluate(com.sun.xacml.ctx.RequestCtx request)

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
Main-line driver for this sample code. This method lets you invoke the PDP directly from the command-line.

Parameters:
args - the input arguments to the class. They are either the flag "-config" followed by a request file, or a request file followed by one or more policy files. In the case that the configuration flag is used, the configuration file must be specified in the standard java property, com.sun.xacml.PDPConfigFile.
Throws:
java.lang.Exception