package biz.karms.sinkit.rest; import javax.enterprise.context.RequestScoped; import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.HeaderParam; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import java.io.Serializable; /** * @author Michal Karm Babacek */ @RequestScoped @Path("/blacklist/dns/") public class DnsREST implements Serializable { private static final long serialVersionUID = -8239140250391025545L; @Inject private DnsService dnsService; public static final String CLIENT_ID_HEADER_PARAM = "X-client-id"; /** * @param client IP address of the DNS client that queried resolver * @param key IP address or FQDN that is to be checked for IoC match * @param fqdn FQDN DNS client wanted to have resolved * @return */ @GET @Path("/{client}/{key}/{fqdn}") @Produces({"application/json;charset=UTF-8"}) public String getSinkHole( @HeaderParam(CLIENT_ID_HEADER_PARAM) Integer clientId, @PathParam("client") String client, @PathParam("key") String key, @PathParam("fqdn") String fqdn) { return dnsService.getSinkHole(client, key, fqdn, clientId); } @GET @Path("/async/{client}/{key}/{fqdn}") @Produces({"application/json;charset=UTF-8"}) public String getAsyncSinkHole( @HeaderParam(CLIENT_ID_HEADER_PARAM) Integer clientId, @PathParam("client") String client, @PathParam("key") String key, @PathParam("fqdn") String fqdn) { dnsService.getAsyncSinkHole(client, key, fqdn, clientId); // TODO: API FTW return ""; } }