package org.cagrid.gaards.authentication.service.globus;
import java.rmi.RemoteException;
import java.util.HashMap;
import java.util.Map;
import java.io.File;
import javax.security.auth.Subject;
import javax.xml.namespace.QName;
import javax.xml.rpc.handler.MessageContext;
import gov.nih.nci.cagrid.introduce.servicetools.security.AuthorizationExtension;
import org.globus.wsrf.impl.security.authorization.exceptions.AuthorizationException;
import org.globus.wsrf.impl.security.authorization.exceptions.CloseException;
import org.globus.wsrf.impl.security.authorization.exceptions.InitializeException;
import org.globus.wsrf.impl.security.authorization.exceptions.InvalidPolicyException;
import org.globus.wsrf.security.authorization.PDP;
import org.globus.wsrf.security.authorization.PDPConfig;
import org.globus.wsrf.config.ContainerConfig;
import org.w3c.dom.Node;
/**
* DO NOT EDIT: This class is autogenerated!
*
* This is a PDP for use with the globus authorization callout.
* This class will have a authorize method for each method on this grid service.
* The method is responsible for making any authorization callouts required to satisfy the
* authorization requirements placed on each method call. Each method will either return
* upon a successful authorization or will throw an exception upon a failed authorization.
*
* @created by Introduce Toolkit version 1.6
*
*/
public class AuthenticationServiceAuthorization implements PDP {
public static final String SERVICE_NAMESPACE = "http://authentication.gaards.cagrid.org/AuthenticationService";
Map authorizationClassMap = new HashMap();
public AuthenticationServiceAuthorization() {
}
protected String getServiceNamespace(){
return SERVICE_NAMESPACE;
}
public static String getCallerIdentity() {
String caller = org.globus.wsrf.security.SecurityManager.getManager().getCaller();
if ((caller == null) || (caller.equals("<anonymous>"))) {
return null;
} else {
return caller;
}
}
public void authorizeGetServiceSecurityMetadata(Subject peerSubject, MessageContext context, QName operation) throws AuthorizationException {
}
public void authorizeAuthenticateUser(Subject peerSubject, MessageContext context, QName operation) throws AuthorizationException {
}
public void authorizeAuthenticate(Subject peerSubject, MessageContext context, QName operation) throws AuthorizationException {
}
public void authorizeGetMultipleResourceProperties(Subject peerSubject, MessageContext context, QName operation) throws AuthorizationException {
}
public void authorizeGetResourceProperty(Subject peerSubject, MessageContext context, QName operation) throws AuthorizationException {
}
public void authorizeQueryResourceProperties(Subject peerSubject, MessageContext context, QName operation) throws AuthorizationException {
}
public void authorizeGetLockedOutUsers(Subject peerSubject, MessageContext context, QName operation) throws AuthorizationException {
}
public boolean isPermitted(Subject peerSubject, MessageContext context, QName operation)
throws AuthorizationException {
if(!operation.getNamespaceURI().equals(getServiceNamespace())){
return false;
}
if(operation.getLocalPart().equals("getServiceSecurityMetadata")){
authorizeGetServiceSecurityMetadata(peerSubject, context, operation);
return true;
} else if(operation.getLocalPart().equals("authenticateUser")){
authorizeAuthenticateUser(peerSubject, context, operation);
return true;
} else if(operation.getLocalPart().equals("authenticate")){
authorizeAuthenticate(peerSubject, context, operation);
return true;
} else if(operation.getLocalPart().equals("getMultipleResourceProperties")){
authorizeGetMultipleResourceProperties(peerSubject, context, operation);
return true;
} else if(operation.getLocalPart().equals("getResourceProperty")){
authorizeGetResourceProperty(peerSubject, context, operation);
return true;
} else if(operation.getLocalPart().equals("queryResourceProperties")){
authorizeQueryResourceProperties(peerSubject, context, operation);
return true;
} else if(operation.getLocalPart().equals("getLockedOutUsers")){
authorizeGetLockedOutUsers(peerSubject, context, operation);
return true;
}
return false;
}
public Node getPolicy(Node query) throws InvalidPolicyException {
return null;
}
public String[] getPolicyNames() {
return null;
}
public Node setPolicy(Node policy) throws InvalidPolicyException {
return null;
}
public void close() throws CloseException {
}
public void initialize(PDPConfig config, String name, String id) throws InitializeException {
try{
String serviceName = (String)config.getProperty(name, "serviceName");
String etcPath = ContainerConfig.getBaseDirectory() + File.separator + (String)config.getProperty(name, "etcDirectoryPath");
} catch (Exception e){
throw new InitializeException(e.getMessage(),e);
}
}
}