package com.mozilla.grouperfish.rest.jaxrs;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import com.mozilla.grouperfish.base.Assert;
import com.mozilla.grouperfish.model.Access;
public class HttpAccess implements Access {
private final Access.Operation type;
private final HttpServletRequest request;
@SuppressWarnings("serial")
private static final Map<String, Access.Operation> defaultType = new HashMap<String, Access.Operation>() {{
put("PUT", Access.Operation.CREATE);
put("GET", Access.Operation.READ);
put("POST", Access.Operation.RUN);
put("DELETE", Access.Operation.DELETE);
}};
public HttpAccess(final HttpServletRequest request) {
this(defaultType.get(request.getMethod()), request);
}
public HttpAccess(final Operation type,
final HttpServletRequest request) {
Assert.nonNull(type);
this.type = type;
this.request = request;
}
@Override
public String origin() {
return request.getRemoteHost();
}
@Override
public Operation type() {
return type;
}
}