Sample Code
The following sample code shows an example of a security policy class file in Java.
/*
* Copyright (c) 1997, 1998 TIBCO Software, Inc. All Rights Reserved.
*
* This software is the confidential and proprietary information of
* TIBCO Software Inc.
*/
package COM.TIBCO.hawk.security.test;
import java.lang.*;
import java.io.*;
import COM.TIBCO.hawk.console.security.*;
public class Test implements HsConsoleInterface, HsAgentInterface {
public void Test() {
System.out.println("PLUGIN: Test.constructor()");
}
public void initialize() throws HsException {
System.out.println("PLUGIN: Test.initialize()");
}
public void shutdown() throws HsException {
System.out.println("PLUGIN: Test.shutdown()");
}
public String initialize(int context) throws HsException {
System.out.println("PLUGIN: Test.initialize(" + context + ")");
return null;
}
public void shutdown(int context) throws HsException {
System.out.println("PLUGIN: Test.shutdown(" + context + ")");
}
public HsIdentifier createId(HsOperation operation)
throws HsException
{
if (operation instanceof HsNodeOperation)
System.out.println("PLUGIN: createId(" +
((HsNodeOperation)operation).microagent() + ":" +
((HsNodeOperation)operation).method() + ")");
else if (operation instanceof HsGroupOperation)
System.out.println("PLUGIN: createId(" +
((HsGroupOperation)operation).microagent() + ":" +
((HsGroupOperation)operation).method() + ")");
else
System.out.println("PLUGIN: Unknown request");
HsIdentifier id = null;
try {
String name = new String("Test Plug-In");
id = new HsIdentifier(name.getBytes());
} catch (HsFrameworkException hsfe) {
throw new HsException(hsfe.toString());
}
return(id);
}
public HsPackedOperation pack(HsIdentifier id, HsOperation operation)
throws HsException
{
if (operation instanceof HsNodeOperation)
System.out.println(
"PLUGIN: pack("+ new String(id.contents)+ "," +
((HsNodeOperation)operation).microagent() + ":" +
((HsNodeOperation)operation).method() + ")");
else if (operation instanceof HsGroupOperation)
System.out.println("PLUGIN: pack(" + new String(id.contents)+ "," +
((HsGroupOperation)operation).microagent() + ":" +
((HsGroupOperation)operation).method() + ")");
else
System.out.println("PLUGIN: Unknown request");
TestOperation trustme =
new TestOperation(id.contents, operation.contents);
byte[] packed = null;
try {
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(buffer);
out.writeObject(trustme);
out.flush();
out.close();
packed = buffer.toByteArray();
} catch (IOException ioe) {
}
HsPackedOperation packedOperation = null;
try {
packedOperation = new HsPackedOperation(packed);
} catch (HsFrameworkException hsfe) {
throw new HsException(hsfe.toString());
}
return (packedOperation);
}
public HsUnpackedOperation unpack(HsPackedOperation operation)
throws HsException
{
System.out.println("PLUGIN: unpack(operation)");
TestOperation trustme = null;
try {
ByteArrayInputStream buffer =
new ByteArrayInputStream(operation.contents);
ObjectInputStream in = new ObjectInputStream(buffer);
trustme = (TestOperation)in.readObject();
in.close();
} catch (ClassNotFoundException cnfe) {
throw new HsException(cnfe.toString());
} catch (IOException ioe) {
throw new HsException(ioe.toString());
}
HsUnpackedOperation unpacked = null;
try {
unpacked = new HsUnpackedOperation
(new HsIdentifier(trustme.id),new HsOperation(trustme.operation));
} catch (HsFrameworkException hsfe) {
throw new HsException(hsfe.toString());
}
return unpacked;
}
public boolean validateId(HsIdentifier id, HsOperation operation)
{
if (operation instanceof HsNodeOperation)
System.out.println("PLUGIN: validateId("+new String(id.contents)+","+
((HsNodeOperation)operation).microagent() + ":" +
((HsNodeOperation)operation).method() + ")");
else if (operation instanceof HsGroupOperation)
System.out.println("PLUGIN: validateId("+new String(id.contents)+","+
((HsGroupOperation)operation).microagent() + ":" +
((HsGroupOperation)operation).method() + ")");
else
System.out.println("PLUGIN: Unknown request");
String name = new String(id.contents);
if (name.equals("Test Plug-In"))
return(true);
else
return(false);
}
public String describe() {
System.out.println("PLUGIN: Test.describe()");
return(new String("TIBCO Hawk Test security model."));
}
}