blob: 162e8e20553c280261fe8ee28f47526214a38d35 [file] [log] [blame]
/*
* Copyright(C) OASIS(R) 2005,2010. All Rights Reserved.
* OASIS trademark, IPR and other policies apply.
*/
package org.oasisopen.sca;
import javax.security.auth.Subject;
/**
* The RequestContext interface is used to obtain information about
* the service invocation which is executing when one of the
* RequestContext methods is called.
*/
public interface RequestContext {
/**
* Returns the JAAS Subject of the current request.
*
* @return The JAAS (javax.security.auth.Subject) Subject of the
* current request. Returns null if there is no JAAS
* Subject.
*/
Subject getSecuritySubject();
/**
* Returns the name of the service under which the current service
* method is executing.
*
* @return the name of the service under which the current service
* operation is executing, or null if called outside of the
* execution of a service method.
*/
String getServiceName();
/**
* Returns a service reference for the callback for the invoked service
* operation, as specified by the service caller.
*
* @param <CB> the Java interface type of the callback.
* @return a service reference for the callback as specified by
* the service caller. Returns null when called for a service
* request whose interface is not bidirectional, or when called
* during execution of a callback request, or when called outside
* the execution of a service method.
*/
<CB> ServiceReference<CB> getCallbackReference();
/**
* Returns a proxy for the callback for the invoked service as specified
* by the service client.
*
* @param <CB> the type of the callback proxy
* @return a proxy for the callback for the invoked service as specified
* by the service client. Returns null when called during the
* execution of a service method whose interface is not
* bidirectional, or when called during the execution of a
* callback request, or when called outside the execution of a
* service method.
*/
<CB> CB getCallback();
/**
* Returns a ServiceReference object for the service that is executing.
*
* @param <B> the Java interface type associated with the service reference.
* @return the ServiceReference representing the service or callback
* that is executing. Returns null if when called outside the
* execution of a service method.
*/
<B> ServiceReference<B> getServiceReference();
}