Parcourir la source

add AppMatcher.requestCheck

tags/v0.12.5^0
Jonathan Cobb il y a 4 ans
Parent
révision
4dc0af59c8
6 fichiers modifiés avec 12 ajouts et 4 suppressions
  1. +3
    -2
      bubble-server/src/main/java/bubble/dao/app/AppMatcherDAO.java
  2. +5
    -0
      bubble-server/src/main/java/bubble/model/app/AppMatcher.java
  3. +1
    -1
      bubble-server/src/main/java/bubble/resources/stream/FilterHttpResource.java
  4. +1
    -1
      bubble-server/src/main/java/bubble/resources/stream/ReverseProxyResource.java
  5. +1
    -0
      bubble-server/src/main/resources/logback.xml
  6. +1
    -0
      bubble-server/src/main/resources/models/apps/passthru/bubbleApp_passthru_matchers.json

+ 3
- 2
bubble-server/src/main/java/bubble/dao/app/AppMatcherDAO.java Voir le fichier

@@ -34,12 +34,12 @@ public class AppMatcherDAO extends AppTemplateEntityDAO<AppMatcher> {

@Override public Order getDefaultSortOrder() { return PRIORITY_ASC; }

public List<AppMatcher> findByAccountAndFqdnAndEnabled(String account, String fqdn) {
public List<AppMatcher> findByAccountAndFqdnAndEnabledAndRequestCheck(String account, String fqdn) {
return list(criteria().add(
and(
eq("account", account),
eq("enabled", true),
eq("connCheck", false),
eq("requestCheck", true),
or(
eq("fqdn", fqdn),
eq("fqdn", WILDCARD_FQDN)
@@ -57,6 +57,7 @@ public class AppMatcherDAO extends AppTemplateEntityDAO<AppMatcher> {

@Override public Object preCreate(AppMatcher matcher) {
if (matcher.getConnCheck() == null) matcher.setConnCheck(false);
if (matcher.getRequestCheck() == null) matcher.setRequestCheck(true);
return super.preCreate(matcher);
}



+ 5
- 0
bubble-server/src/main/java/bubble/model/app/AppMatcher.java Voir le fichier

@@ -134,6 +134,11 @@ public class AppMatcher extends IdentifiableBase implements AppTemplateEntity, H
@Getter @Setter private Boolean connCheck;
public boolean connCheck () { return bool(connCheck); }

@ECSearchable @ECField(index=130, required=EntityFieldRequired.optional)
@ECIndex @Column(nullable=false)
@Getter @Setter private Boolean requestCheck;
public boolean requestCheck () { return bool(requestCheck); }

@ECSearchable @ECField(index=130)
@Column(nullable=false)
@Getter @Setter private Integer priority = 0;


+ 1
- 1
bubble-server/src/main/java/bubble/resources/stream/FilterHttpResource.java Voir le fichier

@@ -282,7 +282,7 @@ public class FilterHttpResource {

private List<AppMatcher> getEnabledMatchers(String requestId, String accountUuid, String fqdn) {
final String prefix = "getEnabledMatchers("+requestId+"): ";
List<AppMatcher> matchers = matcherDAO.findByAccountAndFqdnAndEnabled(accountUuid, fqdn);
List<AppMatcher> matchers = matcherDAO.findByAccountAndFqdnAndEnabledAndRequestCheck(accountUuid, fqdn);
if (log.isTraceEnabled()) log.trace(prefix+"checking all enabled matchers for fqdn: "+json(matchers, COMPACT_MAPPER));
matchers = matchers.stream()
.filter(m -> appDAO.findByAccountAndId(accountUuid, m.getApp()).enabled()).collect(Collectors.toList());


+ 1
- 1
bubble-server/src/main/java/bubble/resources/stream/ReverseProxyResource.java Voir le fichier

@@ -64,7 +64,7 @@ public class ReverseProxyResource {
if (device == null) return ruleEngine.passthru(request);

final URIBean ub = getUriBean(request);
final List<AppMatcher> matchers = matcherDAO.findByAccountAndFqdnAndEnabled(account.getUuid(), ub.getHost());
final List<AppMatcher> matchers = matcherDAO.findByAccountAndFqdnAndEnabledAndRequestCheck(account.getUuid(), ub.getHost());
if (empty(matchers)) {
// no matchers, pass-thru
return ruleEngine.passthru(ub, request);


+ 1
- 0
bubble-server/src/main/resources/logback.xml Voir le fichier

@@ -61,6 +61,7 @@
<logger name="bubble.rule.passthru" level="DEBUG" />
<!-- <logger name="bubble.service.cloud.StandardNetworkService" level="INFO" />-->
<!-- <logger name="bubble.service.cloud.AnsiblePrepService" level="DEBUG" />-->
<logger name="bubble.abp.BlockSpec" level="DEBUG" />
<logger name="bubble.resources.notify" level="WARN" />
<logger name="bubble.client" level="WARN" />
<logger name="bubble.main.rekey" level="INFO" />


+ 1
- 0
bubble-server/src/main/resources/models/apps/passthru/bubbleApp_passthru_matchers.json Voir le fichier

@@ -5,6 +5,7 @@
"name": "TlsPassthruMatcher",
"template": true,
"connCheck": true,
"requestCheck": false,
"site": "All_Sites",
"fqdn": "*",
"urlRegex": ".*",


Chargement…
Annuler
Enregistrer