Search in sources :

Example 1 with FilterRuleDO

use of io.github.tesla.filter.domain.FilterRuleDO in project tesla by linking12.

the class FilterRuleController method edit.

@RequiresPermissions("filter:rule:edit")
@GetMapping("/edit/{id}")
public String edit(@PathVariable("id") Long id, Model model) {
    FilterRuleDO ruleDo = ruleService.get(id);
    model.addAttribute("rule", ruleDo);
    return prefix + "/edit";
}
Also used : FilterRuleDO(io.github.tesla.filter.domain.FilterRuleDO) RequiresPermissions(org.apache.shiro.authz.annotation.RequiresPermissions) GetMapping(org.springframework.web.bind.annotation.GetMapping)

Example 2 with FilterRuleDO

use of io.github.tesla.filter.domain.FilterRuleDO in project tesla by linking12.

the class FilterRuleCacheComponent method doCache.

@Override
protected void doCache() {
    try {
        readWriteLock.writeLock().lock();
        COMMUNITY_RULE_CACHE.clear();
        URL_RULE_CACHE.clear();
        List<FilterRuleDO> filterRuleDOs = rilterRuleDao.list(Maps.newHashMap());
        for (FilterRuleDO ruleDO : filterRuleDOs) {
            String type = ruleDO.getFilterType().name();
            String rule = ruleDO.getRule();
            String url = ruleDO.getUrl();
            if (StringUtils.isEmpty(url)) {
                List<String> rules = COMMUNITY_RULE_CACHE.get(type);
                if (rules == null) {
                    rules = Lists.newLinkedList();
                    COMMUNITY_RULE_CACHE.put(type, rules);
                }
                if (StringUtils.contains(rule, LINE_SEPARATOR_UNIX)) {
                    String[] rulesSplits = StringUtils.split(rule, LINE_SEPARATOR_UNIX);
                    rules.addAll(Arrays.asList(rulesSplits));
                } else if (StringUtils.contains(rule, LINE_SEPARATOR_WINDOWS)) {
                    String[] rulesSplits = StringUtils.split(rule, LINE_SEPARATOR_UNIX);
                    rules.addAll(Arrays.asList(rulesSplits));
                } else {
                    rules.add(rule);
                }
            } else {
                Map<String, List<String>> maprules = URL_RULE_CACHE.get(type);
                if (maprules == null) {
                    maprules = Maps.newConcurrentMap();
                    URL_RULE_CACHE.put(type, maprules);
                }
                List<String> rules = maprules.get(url);
                if (rules == null) {
                    rules = Lists.newLinkedList();
                    maprules.put(url, rules);
                }
                if (StringUtils.contains(rule, LINE_SEPARATOR_UNIX)) {
                    String[] rulesSplits = StringUtils.split(rule, LINE_SEPARATOR_UNIX);
                    rules.addAll(Arrays.asList(rulesSplits));
                } else if (StringUtils.contains(rule, LINE_SEPARATOR_WINDOWS)) {
                    String[] rulesSplits = StringUtils.split(rule, LINE_SEPARATOR_UNIX);
                    rules.addAll(Arrays.asList(rulesSplits));
                } else {
                    rules.add(rule);
                }
            }
        }
    } finally {
        readWriteLock.writeLock().unlock();
    }
}
Also used : FilterRuleDO(io.github.tesla.filter.domain.FilterRuleDO) List(java.util.List)

Aggregations

FilterRuleDO (io.github.tesla.filter.domain.FilterRuleDO)2 List (java.util.List)1 RequiresPermissions (org.apache.shiro.authz.annotation.RequiresPermissions)1 GetMapping (org.springframework.web.bind.annotation.GetMapping)1