package backtype.storm.security.auth.authorizer;
import java.util.Map;
import backtype.storm.Config;
import backtype.storm.security.auth.IAuthorizer;
import backtype.storm.security.auth.ReqContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* A no-op authorization implementation that illustrate info available for
* authorization decisions.
*/
public class NoopAuthorizer implements IAuthorizer {
private static final Logger LOG = LoggerFactory
.getLogger(NoopAuthorizer.class);
/**
* Invoked once immediately after construction
*
* @param conf
* Storm configuration
*/
public void prepare(Map 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) {
LOG.info("[req "
+ context.requestID()
+ "] Access "
+ " from: "
+ (context.remoteAddress() == null ? "null" : context
.remoteAddress().toString()) + " principal:"
+ (context.principal() == null ? "null" : context.principal())
+ " op:" + operation + " topoology:"
+ topology_conf.get(Config.TOPOLOGY_NAME));
return true;
}
}