All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.bitsensor.plugins.java.blocking.BlockingHandler Maven / Gradle / Ivy

There is a newer version: 4.0.3
Show newest version
package io.bitsensor.plugins.java.blocking;

import io.bitsensor.plugins.java.core.BitSensor;
import io.bitsensor.plugins.java.http.AccessDeniedException;
import io.bitsensor.plugins.java.http.filter.handler.RequestHandler;
import io.bitsensor.plugins.shaded.org.springframework.beans.factory.annotation.Autowired;
import io.bitsensor.plugins.shaded.org.springframework.beans.factory.annotation.Value;
import io.bitsensor.plugins.shaded.org.springframework.core.annotation.Order;
import io.bitsensor.plugins.shaded.org.springframework.stereotype.Component;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@Component
@Order
public class BlockingHandler implements RequestHandler {

    @Autowired
    BlockingManager manager;

    @Value("${bitsensor.blocking.message:This request has been blocked by BitSensor.}")
    private String message;

    @Override
    public void handle(HttpServletRequest request, HttpServletResponse response) {
        manager.getBlacklist().forEach((s, attacker) -> {
            if (attacker.isBlocked() && attacker.match(BitSensor.getDatapointBuilder().build())) {
                BitSensor.addEndpoint("blocking.id", s);
                BitSensor.addEndpoint("blocked", "true");

                throw new AccessDeniedException(message);
            }
        });
    }

    @Override
    public ExecutionMoment getExecutionMoment() {
        return ExecutionMoment.PRE_HANDLE;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy