Package com.jetdrone.vertx.yoke.middleware

Source Code of com.jetdrone.vertx.yoke.middleware.IEXSS

package com.jetdrone.vertx.yoke.middleware;

import com.jetdrone.vertx.yoke.Middleware;
import com.jetdrone.vertx.yoke.middleware.impl.WebClient;
import org.jetbrains.annotations.NotNull;
import org.vertx.java.core.Handler;

public final class IEXSS implements Middleware {

    private final boolean setOnOldIE;

    public IEXSS() {
        this(false);
    }

    public IEXSS(boolean setOnOldIE) {
        this.setOnOldIE = setOnOldIE;
    }

    @Override
    public void handle(@NotNull YokeRequest request, @NotNull Handler<Object> next) {
        final WebClient webClient = WebClient.detect(request.getHeader("user-agent"));

        boolean isIE = webClient.getUserAgent() == WebClient.UserAgent.IE;
        int majorVersion = webClient.getMajorVersion();

        String value;

        if ((!isIE) || (majorVersion >= 9) || (setOnOldIE)) {
            value = "1; mode=block";
        } else {
            value = "0";
        }

        request.response().putHeader("X-XSS-Protection", value);
        next.handle(null);
    }
}
TOP

Related Classes of com.jetdrone.vertx.yoke.middleware.IEXSS

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.