package backtype.storm.security.auth;
import java.util.Map;
/**
* Nimbus could be configured with an authorization plugin. If not specified,
* all requests are authorized.
*
* You could specify the authorization plugin via storm parameter. For example:
* storm -c
* nimbus.authorization.class=backtype.storm.security.auth.NoopAuthorizer ...
*
* You could also specify it via storm.yaml: nimbus.authorization.class:
* backtype.storm.security.auth.NoopAuthorizer
*/
public interface IAuthorizer {
/**
* Invoked once immediately after construction
*
* @param conf
* Storm configuration
*/
void prepare(Map storm_conf);
/**
* permit() method is invoked for each incoming Thrift request.
*
* @param context
* request context includes info about
* @param operation
* operation name
* @param topology_storm
* configuration of targeted topology
* @return true if the request is authorized, false if reject
*/
public boolean permit(ReqContext context, String operation,
Map topology_conf);
}