Kaynağa Gözat

do not show block icon for non-browsers. move isHtml into FilterHttpRequest

pull/43/head
Jonathan Cobb 4 yıl önce
ebeveyn
işleme
290589cfc6
5 değiştirilmiş dosya ile 17 ekleme ve 9 silme
  1. +10
    -0
      bubble-server/src/main/java/bubble/resources/stream/FilterHttpRequest.java
  2. +4
    -4
      bubble-server/src/main/java/bubble/rule/bblock/BubbleBlockRuleDriver.java
  3. +1
    -2
      bubble-server/src/main/java/bubble/rule/social/block/JsUserBlockerRuleDriver.java
  4. +1
    -2
      bubble-server/src/main/java/bubble/rule/social/block/UserBlockerRuleDriver.java
  5. +1
    -1
      utils/cobbzilla-utils

+ 10
- 0
bubble-server/src/main/java/bubble/resources/stream/FilterHttpRequest.java Dosyayı Görüntüle

@@ -14,6 +14,8 @@ import lombok.Setter;
import lombok.experimental.Accessors;
import lombok.extern.slf4j.Slf4j;
import org.cobbzilla.util.http.HttpContentEncodingType;
import org.cobbzilla.util.http.HttpContentTypes;
import org.cobbzilla.util.http.HttpUtil;

import java.util.List;
import java.util.regex.Matcher;
@@ -33,6 +35,8 @@ public class FilterHttpRequest {
@Getter @Setter private Account account;
@Getter @Setter private String contentType;

@JsonIgnore public boolean isHtml () { return HttpContentTypes.isHtml(getContentType()); }

@Getter @Setter private Long contentLength;
public boolean hasContentLength () { return contentLength != null; }

@@ -70,6 +74,12 @@ public class FilterHttpRequest {
return !hasMatchers() || !matchersResponse.hasRequest() ? null : matchersResponse.getRequest().getUrl();
}

@JsonIgnore public String getUserAgent() {
return !hasMatchers() || !matchersResponse.hasRequest() ? null : matchersResponse.getRequest().getUserAgent();
}

@JsonIgnore public boolean isBrowser () { return HttpUtil.isBrowser(getUserAgent()); }

public boolean hasApp(String appId) {
if (!hasMatchers()) return false;
for (AppMatcher m : getMatchers()) if (m.getApp().equals(appId)) return true;


+ 4
- 4
bubble-server/src/main/java/bubble/rule/bblock/BubbleBlockRuleDriver.java Dosyayı Görüntüle

@@ -35,8 +35,8 @@ import java.util.concurrent.atomic.AtomicReference;

import static bubble.service.stream.HttpStreamDebug.getLogFqdn;
import static java.util.concurrent.TimeUnit.DAYS;
import static org.cobbzilla.util.daemon.ZillaRuntime.*;
import static org.cobbzilla.util.http.HttpContentTypes.isHtml;
import static org.cobbzilla.util.daemon.ZillaRuntime.empty;
import static org.cobbzilla.util.daemon.ZillaRuntime.shortError;
import static org.cobbzilla.util.io.StreamUtil.stream2string;
import static org.cobbzilla.util.json.JsonUtil.COMPACT_MAPPER;
import static org.cobbzilla.util.json.JsonUtil.json;
@@ -65,7 +65,7 @@ public class BubbleBlockRuleDriver extends TrafficAnalyticsRuleDriver implements

@Override public boolean couldModify(FilterHttpRequest request) {
final BubbleBlockConfig config = getRuleConfig();
return (config.inPageBlocks() || showStats()) && isHtml(request.getContentType());
return request.isHtml() && request.isBrowser() && (config.inPageBlocks() || showStats());
}

@Override public void init(JsonNode config,
@@ -332,7 +332,7 @@ public class BubbleBlockRuleDriver extends TrafficAnalyticsRuleDriver implements
return EMPTY_STREAM;
}

if (!isHtml(contentType)) {
if (!filterRequest.isHtml()) {
log.warn(prefix+"cannot request non-html response ("+request.getUrl()+"), returning as-is: "+contentType);
if (log.isInfoEnabled()) log.info(prefix+"SEND: unfiltered response (non-html content-type) for "+request.getUrl());
return in;


+ 1
- 2
bubble-server/src/main/java/bubble/rule/social/block/JsUserBlockerRuleDriver.java Dosyayı Görüntüle

@@ -13,7 +13,6 @@ import lombok.extern.slf4j.Slf4j;

import java.io.InputStream;

import static org.cobbzilla.util.http.HttpContentTypes.isHtml;
import static org.cobbzilla.util.io.StreamUtil.stream2string;
import static org.cobbzilla.util.string.StringUtil.getPackagePath;

@@ -34,7 +33,7 @@ public class JsUserBlockerRuleDriver extends AbstractAppRuleDriver implements Re
@Getter(lazy=true) private final String defaultSiteJsTemplate = stream2string(getRequestModifierConfig().getSiteJsTemplate());

@Override public InputStream doFilterResponse(FilterHttpRequest filterRequest, InputStream in) {
if (!isHtml(filterRequest.getContentType())) return in;
if (!filterRequest.isHtml()) return in;
log.warn("doFilterResponse("+filterRequest.getId()+"): inserting JS");
return filterInsertJs(in, filterRequest, null, BUBBLE_JS_TEMPLATE, getDefaultSiteJsTemplate(), CTX_APPLY_BLOCKS_JS, true);
}


+ 1
- 2
bubble-server/src/main/java/bubble/rule/social/block/UserBlockerRuleDriver.java Dosyayı Görüntüle

@@ -23,7 +23,6 @@ import java.util.Map;
import java.util.Set;

import static org.cobbzilla.util.daemon.ZillaRuntime.die;
import static org.cobbzilla.util.http.HttpContentTypes.isHtml;
import static org.cobbzilla.util.json.JsonUtil.json;
import static org.cobbzilla.util.string.StringUtil.UTF8cs;

@@ -62,7 +61,7 @@ public class UserBlockerRuleDriver extends AbstractAppRuleDriver {
protected UserBlockerConfig configObject() { return json(getFullConfig(), UserBlockerConfig.class); }

@Override public InputStream doFilterResponse(FilterHttpRequest filterRequest, InputStream in) {
if (!isHtml(filterRequest.getContentType())) return in;
if (!filterRequest.isHtml()) return in;

final String requestId = filterRequest.getId();
final UserBlockerStreamFilter filter = new UserBlockerStreamFilter(requestId, matcher, rule, configuration.getHttp().getBaseUri());


+ 1
- 1
utils/cobbzilla-utils

@@ -1 +1 @@
Subproject commit f04e3f5f86e1706d4bb899b4c8cdd6cdc4ac92c4
Subproject commit d2360429c18bc9744ee3881182ae859fbcdc4c46

Yükleniyor…
İptal
Kaydet