
nablarch.fw.web.handler.csrf.HttpMethodVerificationTargetMatcher Maven / Gradle / Ivy
The newest version!
package nablarch.fw.web.handler.csrf;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import nablarch.fw.web.HttpRequest;
/**
* HTTPメソッドをもとにしてHTTPリクエストがCSRFトークンの検証対象となるか判定を行うクラス。
*
*
* デフォルトでは以下のHTTPメソッドをCSRFトークンの検証対象外とする。
*
* - GET
* - HEAD
* - TRACE
* - OPTIONS
*
*
*
* @author Uragami Taichi
*
*/
public class HttpMethodVerificationTargetMatcher implements VerificationTargetMatcher {
/**
* allowedMethodsのデフォルト値
*/
private static final Set DEFAULT_ALLOWED_METHODS;
static {
Set allowedMethods = new HashSet();
allowedMethods.add("GET");
allowedMethods.add("HEAD");
allowedMethods.add("TRACE");
allowedMethods.add("OPTIONS");
DEFAULT_ALLOWED_METHODS = Collections.unmodifiableSet(allowedMethods);
}
/**
* CSRFトークンの検証対象外となるHTTPメソッドの集合
*/
private Set allowedMethods = DEFAULT_ALLOWED_METHODS;
@Override
public boolean match(HttpRequest request) {
return !allowedMethods.contains(request.getMethod());
}
/**
* CSRFトークンの検証対象外となるHTTPメソッドの集合を設定する。
*
* @param allowedMethods CSRFトークンの検証対象外となるHTTPメソッドの集合
*/
public void setAllowedMethods(Set allowedMethods) {
this.allowedMethods = allowedMethods;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy