Example usage for org.apache.commons.collections MapUtils getBoolean

List of usage examples for org.apache.commons.collections MapUtils getBoolean

Introduction

In this page you can find the example usage for org.apache.commons.collections MapUtils getBoolean.

Prototype

public static Boolean getBoolean(Map map, Object key, Boolean defaultValue) 

Source Link

Document

Looks up the given key in the given map, converting the result into a boolean, using the default value if the the conversion fails.

Usage

From source file:com.ctrip.infosec.rule.util.Emitter.java

public static void emit(RiskFact fact, String ruleNo, int riskLevel, String riskMessage) {
    boolean _isAsync = MapUtils.getBoolean(fact.ext, Constants.key_isAsync, false);
    if (!Strings.isNullOrEmpty(ruleNo)) {
        Map<String, Object> result = Maps.newHashMap();
        result.put(Constants.riskLevel, riskLevel);
        result.put(Constants.riskMessage, riskMessage);
        result.put(Constants.async, _isAsync);
        if (!_isAsync) {
            result.put(Constants.ruleType, "N");
            fact.results.put(ruleNo, result);
        } else {//  w  ww .  ja va 2  s  . c  o  m
            result.put(Constants.ruleType, "NA");
            fact.results4Async.put(ruleNo, result);
        }

        //            RuleMonitorHelper.addRiskRuleNo(ruleNo);
        RuleMonitorHelper.addRiskRuleNo(ruleNo, riskLevel);
    }

}

From source file:com.senseidb.plugin.analyzer.LucenePatternAnalyzerFactory.java

@Override
public Analyzer getBean(Map<String, String> initProperties, String fullPrefix,
        SenseiPluginRegistry pluginRegistry) {
    Version matchVersion = Version.valueOf(MapUtils.getString(initProperties, "matchVersion", "LUCENE_35"));
    Pattern pattern = Pattern.compile(MapUtils.getString(initProperties, "pattern", "\\s+"));
    boolean toLowerCase = MapUtils.getBoolean(initProperties, "toLowerCase", true);
    String stopWordsStr = MapUtils.getString(initProperties, "stopWords", "");
    Set<String> stopWords = new HashSet<String>(Arrays.asList(stopWordsStr.split("\\s*,\\s*")));
    return new PatternAnalyzer(matchVersion, pattern, toLowerCase, stopWords);
}

From source file:com.ctrip.infosec.rule.venus.RuleEngineRemoteServiceImpl.java

@Override
public String execute(String factTxt) {
    beforeInvoke("RuleEngine.execute");
    logger.info("VENUS: fact=" + factTxt);
    RiskFact fact = JSON.parseObject(factTxt, RiskFact.class);
    Contexts.setAsync(false);//from w  ww.  j  a  va  2  s . com
    Contexts.setLogPrefix("[" + fact.eventPoint + "][" + fact.eventId + "] ");
    SarsMonitorContext.setLogPrefix(Contexts.getLogPrefix());

    boolean traceLoggerEnabled = MapUtils.getBoolean(fact.ext, Constants.key_traceLogger, true);
    TraceLogger.enabled(traceLoggerEnabled);

    RuleMonitorHelper.newTrans(fact, RuleMonitorType.CP_SYNC);

    // ??
    // S0 - ??
    // S1 - ?
    // S2 - ??
    // S3 - 
    try {
        // ??GET
        try {
            RuleMonitorHelper.newTrans(fact, RuleMonitorType.GET);
            TraceLogger.beginTrans(fact.eventId, "S1");
            TraceLogger.setLogPrefix("[???]");
            eventDataMergeService.executeRedisGet(fact);
        } finally {
            TraceLogger.commitTrans();
            RuleMonitorHelper.commitTrans(fact);
        }
        // ?            
        try {
            RuleMonitorHelper.newTrans(fact, RuleMonitorType.PRE_RULE_WRAP);
            TraceLogger.beginTrans(fact.eventId, "S1");
            TraceLogger.setLogPrefix("[??]");
            preRulesExecutorService.executePreRules(fact, false);
        } finally {
            TraceLogger.commitTrans();
            RuleMonitorHelper.commitTrans(fact);
        }
        // ???
        try {
            RuleMonitorHelper.newTrans(fact, RuleMonitorType.WB_RULE_WRAP);
            TraceLogger.beginTrans(fact.eventId, "S1");
            TraceLogger.setLogPrefix("[???]");
            whiteListRulesExecutorService.executeWhitelistRules(fact);
        } finally {
            TraceLogger.commitTrans();
            RuleMonitorHelper.commitTrans(fact);
        }

        // ????
        boolean matchedWhitelist = false;
        // ??????"0"
        if (!Constants.eventPointsWithScene.contains(fact.eventPoint)) {
            if (fact.finalWhitelistResult != null
                    && fact.finalWhitelistResult.containsKey(Constants.riskLevel)) {

                int finalWhitelistRiskLevel = valueAsInt(fact.finalWhitelistResult, Constants.riskLevel);
                if (finalWhitelistRiskLevel == 0 || finalWhitelistRiskLevel == 95) {
                    fact.finalResult.put(Constants.riskLevel, finalWhitelistRiskLevel);
                    fact.finalResult.put(Constants.riskMessage, "???[0]");
                    matchedWhitelist = true;
                } else if (finalWhitelistRiskLevel >= 200) {
                    fact.finalResult.put(Constants.riskLevel, finalWhitelistRiskLevel);
                    fact.finalResult.put(Constants.riskMessage,
                            "???[" + finalWhitelistRiskLevel + "]");
                    matchedWhitelist = true;
                }
            }
        }

        // ?
        if (!matchedWhitelist) {
            try {
                RuleMonitorHelper.newTrans(fact, RuleMonitorType.RULE_WRAP);
                TraceLogger.beginTrans(fact.eventId, "S1");
                TraceLogger.setLogPrefix("[?]");
                rulesExecutorService.executeSyncRules(fact);
            } finally {
                TraceLogger.commitTrans();
                RuleMonitorHelper.commitTrans(fact);
            }
        }
        // ??
        try {
            RuleMonitorHelper.newTrans(fact, RuleMonitorType.POST_RULE_WRAP);
            TraceLogger.beginTrans(fact.eventId, "S1");
            TraceLogger.setLogPrefix("[???]");
            postRulesExecutorService.executePostRules(fact, false);
        } finally {
            TraceLogger.commitTrans();
            RuleMonitorHelper.commitTrans(fact);
        }
        // ??PUT
        try {
            RuleMonitorHelper.newTrans(fact, RuleMonitorType.PUT);
            TraceLogger.beginTrans(fact.eventId, "S1");
            TraceLogger.setLogPrefix("[???]");
            eventDataMergeService.executeRedisPut(fact);
        } finally {
            TraceLogger.commitTrans();
            RuleMonitorHelper.commitTrans(fact);
        }
    } catch (Throwable ex) {
        fault("RuleEngine.execute");
        if (fact.finalResult == null) {
            fact.setFinalResult(Constants.defaultResult);
        }
        logger.error(Contexts.getLogPrefix() + "invoke execute exception.", ex);
        RuleMonitorHelper.setFault(ex);
    } finally {
        afterInvoke("RuleEngine.execute");
        RuleMonitorHelper.commitTrans(fact);
    }
    return JSON.toJSONString(fact);
}

From source file:com.ctrip.infosec.rule.rest.RuleEngineRESTfulController.java

@RequestMapping(value = "/verify", method = RequestMethod.POST)
@ResponseBody//  w  w  w  .ja v  a 2s .  c o  m
public ResponseEntity<?> verify(@RequestBody String factTxt) {
    logger.info("REST: fact=" + factTxt);
    RiskFact fact = JSON.parseObject(factTxt, RiskFact.class);
    Contexts.setAsync(false);
    Contexts.setLogPrefix("[" + fact.eventPoint + "][" + fact.eventId + "] ");
    SarsMonitorContext.setLogPrefix(Contexts.getLogPrefix());

    boolean traceLoggerEnabled = MapUtils.getBoolean(fact.ext, Constants.key_traceLogger, true);
    TraceLogger.enabled(traceLoggerEnabled);

    RuleMonitorHelper.newTrans(fact, RuleMonitorType.CP_SYNC);

    // ??
    // S0 - ??
    // S1 - ?
    // S2 - ??
    // S3 - 
    try {
        // ??GET
        try {
            RuleMonitorHelper.newTrans(fact, RuleMonitorType.GET);
            TraceLogger.beginTrans(fact.eventId, "S1");
            TraceLogger.setLogPrefix("[???]");
            eventDataMergeService.executeRedisGet(fact);
        } finally {
            TraceLogger.commitTrans();
            RuleMonitorHelper.commitTrans(fact);
        }
        // ?            
        try {
            RuleMonitorHelper.newTrans(fact, RuleMonitorType.PRE_RULE_WRAP);
            TraceLogger.beginTrans(fact.eventId, "S1");
            TraceLogger.setLogPrefix("[??]");
            preRulesExecutorService.executePreRules(fact, false);
        } finally {
            TraceLogger.commitTrans();
            RuleMonitorHelper.commitTrans(fact);
        }
        // ???
        try {
            RuleMonitorHelper.newTrans(fact, RuleMonitorType.WB_RULE_WRAP);
            TraceLogger.beginTrans(fact.eventId, "S1");
            TraceLogger.setLogPrefix("[???]");
            whiteListRulesExecutorService.executeWhitelistRules(fact);
        } finally {
            TraceLogger.commitTrans();
            RuleMonitorHelper.commitTrans(fact);
        }

        // ????
        boolean matchedWhitelist = false;
        // ??????"0"
        if (!Constants.eventPointsWithScene.contains(fact.eventPoint)) {
            if (fact.finalWhitelistResult != null
                    && fact.finalWhitelistResult.containsKey(Constants.riskLevel)) {

                int finalWhitelistRiskLevel = valueAsInt(fact.finalWhitelistResult, Constants.riskLevel);
                if (finalWhitelistRiskLevel == 0 || finalWhitelistRiskLevel == 95) {
                    fact.finalResult.put(Constants.riskLevel, finalWhitelistRiskLevel);
                    fact.finalResult.put(Constants.riskMessage, "???[0]");
                    matchedWhitelist = true;
                } else if (finalWhitelistRiskLevel >= 200) {
                    fact.finalResult.put(Constants.riskLevel, finalWhitelistRiskLevel);
                    fact.finalResult.put(Constants.riskMessage,
                            "???[" + finalWhitelistRiskLevel + "]");
                    matchedWhitelist = true;
                }
            }
        }

        // ?
        if (!matchedWhitelist) {
            try {
                RuleMonitorHelper.newTrans(fact, RuleMonitorType.RULE_WRAP);
                TraceLogger.beginTrans(fact.eventId, "S1");
                TraceLogger.setLogPrefix("[?]");
                rulesExecutorService.executeSyncRules(fact);
            } finally {
                TraceLogger.commitTrans();
                RuleMonitorHelper.commitTrans(fact);
            }
        }
        // ??
        try {
            RuleMonitorHelper.newTrans(fact, RuleMonitorType.POST_RULE_WRAP);
            TraceLogger.beginTrans(fact.eventId, "S1");
            TraceLogger.setLogPrefix("[???]");
            postRulesExecutorService.executePostRules(fact, false);
        } finally {
            TraceLogger.commitTrans();
            RuleMonitorHelper.commitTrans(fact);
        }
        // ??PUT
        try {
            RuleMonitorHelper.newTrans(fact, RuleMonitorType.PUT);
            TraceLogger.beginTrans(fact.eventId, "S1");
            TraceLogger.setLogPrefix("[???]");
            eventDataMergeService.executeRedisPut(fact);
        } finally {
            TraceLogger.commitTrans();
            RuleMonitorHelper.commitTrans(fact);
        }

    } catch (Throwable ex) {
        if (fact.finalResult == null) {
            fact.setFinalResult(Constants.defaultResult);
        }
        logger.error(Contexts.getLogPrefix() + "invoke query exception.", ex);

        RuleMonitorHelper.setFault(ex);
    } finally {
        RuleMonitorHelper.commitTrans(fact);
    }

    return new ResponseEntity(fact, HttpStatus.OK);
}

From source file:com.ctrip.infosec.rule.util.Emitter.java

public static void emit(RiskFact fact, String ruleNo, int riskLevel, String riskMessage, String... riskScene) {
    boolean _isAsync = MapUtils.getBoolean(fact.ext, Constants.key_isAsync, false);
    if (!Strings.isNullOrEmpty(ruleNo)) {
        Map<String, Object> result = Maps.newHashMap();
        result.put(Constants.riskLevel, riskLevel);
        result.put(Constants.riskMessage, riskMessage);
        result.put(Constants.riskScene, Lists.newArrayList(riskScene));
        result.put(Constants.async, _isAsync);
        if (!_isAsync) {
            result.put(Constants.ruleType, "S");
            fact.resultsGroupByScene.put(ruleNo, result);
        } else {/* w  ww .j ava 2s  .com*/
            result.put(Constants.ruleType, "SA");
            fact.resultsGroupByScene4Async.put(ruleNo, result);
        }

        //            RuleMonitorHelper.addRiskRuleNo(ruleNo);
        RuleMonitorHelper.addRiskRuleNo(ruleNo, riskLevel);
    }
}

From source file:grails.plugin.searchable.internal.compass.search.DefaultStringQuerySearchableCompassQueryBuilder.java

public CompassQuery buildQuery(GrailsApplication grailsApplication, CompassSession compassSession, Map options,
        Object query) {//from w w  w .j  ava2  s.  c  o m
    Assert.notNull(query, "query cannot be null");
    Assert.isInstanceOf(String.class, query,
            "query must be a String but is [" + query.getClass().getName() + "]");

    String analyzer = (String) getOption(ANALYZER_NAMES, options);
    String parser = (String) getOption(PARSER_NAMES, options);
    String defaultSearchProperty = (String) getOption(DEFAULT_PROPERTY_NAMES, options);
    Collection properties = (Collection) getOption(PROPERTIES_NAMES, options);
    Boolean useAndDefaultOperator = (Boolean) getOption(USE_AND_DEFAULT_OPERATOR_NAMES, options);
    String defaultOperator = (String) getOption(DEFAULT_OPERATOR_NAMES, options);
    Boolean escape = MapUtils.getBoolean(options, "escape", false);

    Assert.isTrue(!(properties != null && defaultSearchProperty != null),
            "The " + DefaultGroovyMethods.join(DEFAULT_PROPERTY_NAMES, "/") + " and "
                    + DefaultGroovyMethods.join(PROPERTIES_NAMES, "/") + " options cannot be combined");
    Assert.isTrue(!(defaultOperator != null && useAndDefaultOperator != null),
            "The [" + DefaultGroovyMethods.join(USE_AND_DEFAULT_OPERATOR_NAMES, ", ") + "] and ["
                    + DEFAULT_PROPERTY_NAMES[0]
                    + "] options indicate the same thing so cannot be used together: [" + DEFAULT_PROPERTY_NAMES
                    + "] is better");

    String queryString = (String) query;
    if (escape) {
        queryString = CompassQueryParser.escape(queryString);
    }

    CompassQueryBuilder compassQueryBuilder = compassSession.queryBuilder();
    CompassQueryBuilder.ToCompassQuery stringBuilder;
    if (properties != null && !properties.isEmpty()) {
        stringBuilder = compassQueryBuilder.multiPropertyQueryString(queryString);
        for (Iterator iter = properties.iterator(); iter.hasNext();) {
            ((CompassQueryBuilder.CompassMultiPropertyQueryStringBuilder) stringBuilder)
                    .add((String) iter.next());
        }
    } else {
        stringBuilder = compassQueryBuilder.queryString(queryString);
    }

    if (analyzer != null) {
        InvokerHelper.invokeMethod(stringBuilder, "setAnalyzer", analyzer);
    }
    if (parser != null) {
        InvokerHelper.invokeMethod(stringBuilder, "setQueryParser", parser);
    }
    if (defaultSearchProperty != null) {
        InvokerHelper.invokeMethod(stringBuilder, "setDefaultSearchProperty", defaultSearchProperty);
    }
    // todo deprecate "useAndDefaultOperator" - "defaultOperator" is better
    if (useAndDefaultOperator != null) {
        if (useAndDefaultOperator) {
            InvokerHelper.invokeMethod(stringBuilder, "useAndDefaultOperator", null);
        } else {
            InvokerHelper.invokeMethod(stringBuilder, "useOrDefaultOperator", null);
        }
    }
    if (defaultOperator != null) {
        if (defaultOperator.equalsIgnoreCase("and")) {
            InvokerHelper.invokeMethod(stringBuilder, "useAndDefaultOperator", null);
        } else if (defaultOperator.equalsIgnoreCase("or")) {
            InvokerHelper.invokeMethod(stringBuilder, "useOrDefaultOperator", null);
        } else {
            throw new IllegalArgumentException("The [" + DEFAULT_OPERATOR_NAMES[0]
                    + "] option only accepts 'and' or 'or' values but [" + defaultOperator + "] was supplied");
        }
    }
    return stringBuilder.toQuery();
}

From source file:com.ctrip.infosec.rule.rabbitmq.RabbitMqMessageHandler.java

public void handleMessage(Object message) throws Exception {
    RiskFact fact = null;/*from www  . j a v  a 2s  .  c o m*/
    String factTxt;
    InternalRiskFact internalRiskFact = null;
    try {

        if (message instanceof byte[]) {
            factTxt = new String((byte[]) message, Constants.defaultCharset);
        } else if (message instanceof String) {
            factTxt = (String) message;
        } else {
            throw new IllegalArgumentException("????\"String\"\"byte[]\"");
        }

        logger.info("MQ: fact=" + factTxt);
        fact = JSON.parseObject((String) factTxt, RiskFact.class);
        Contexts.setAsync(true);
        Contexts.setLogPrefix("[" + fact.eventPoint + "][" + fact.eventId + "] ");
        SarsMonitorContext.setLogPrefix(Contexts.getLogPrefix());

        boolean traceLoggerEnabled = MapUtils.getBoolean(fact.ext, Constants.key_traceLogger, true);
        TraceLogger.enabled(traceLoggerEnabled);

        RuleMonitorHelper.newTrans(fact, RuleMonitorType.CP_ASYNC);

        // ??
        // S0 - ??
        // S1 - ?
        // S2 - ??
        // S3 - 
        // ??GET
        try {
            RuleMonitorHelper.newTrans(fact, RuleMonitorType.GET);
            TraceLogger.beginTrans(fact.eventId, "S3");
            TraceLogger.setLogPrefix("[??]");
            eventDataMergeService.executeRedisGet(fact);
        } finally {
            TraceLogger.commitTrans();
            RuleMonitorHelper.commitTrans(fact);
        }
        // ?            
        try {
            RuleMonitorHelper.newTrans(fact, RuleMonitorType.PRE_RULE_WRAP);
            TraceLogger.beginTrans(fact.eventId, "S3");
            TraceLogger.setLogPrefix("[?]");
            preRulesExecutorService.executePreRules(fact, true);
        } finally {
            TraceLogger.commitTrans();
            RuleMonitorHelper.commitTrans(fact);
        }
        // 
        try {
            RuleMonitorHelper.newTrans(fact, RuleMonitorType.RULE_WRAP);
            TraceLogger.beginTrans(fact.eventId, "S3");
            TraceLogger.setLogPrefix("[]");
            rulesExecutorService.executeAsyncRules(fact);
        } finally {
            TraceLogger.commitTrans();
            RuleMonitorHelper.commitTrans(fact);
        }
        // 
        try {
            RuleMonitorHelper.newTrans(fact, RuleMonitorType.MODEL_RULE_WRAP);
            TraceLogger.beginTrans(fact.eventId, "S3");
            TraceLogger.setLogPrefix("[]");
            modelRulesExecutorService.executeModelRules(fact);
        } finally {
            TraceLogger.commitTrans();
            RuleMonitorHelper.commitTrans(fact);
        }
        // ??
        try {
            RuleMonitorHelper.newTrans(fact, RuleMonitorType.POST_RULE_WRAP);
            TraceLogger.beginTrans(fact.eventId, "S3");
            TraceLogger.setLogPrefix("[??]");
            postRulesExecutorService.executePostRules(fact, true);
        } finally {
            TraceLogger.commitTrans();
            RuleMonitorHelper.commitTrans(fact);
        }
        // ??PUT
        try {
            RuleMonitorHelper.newTrans(fact, RuleMonitorType.PUT);
            TraceLogger.beginTrans(fact.eventId, "S3");
            TraceLogger.setLogPrefix("[??]");
            eventDataMergeService.executeRedisPut(fact);
        } finally {
            TraceLogger.commitTrans();
            RuleMonitorHelper.commitTrans(fact);
        }
        //Counter??
        try {
            RuleMonitorHelper.newTrans(fact, RuleMonitorType.PUSH_WRAP);
            TraceLogger.beginTrans(fact.eventId, "S3");
            TraceLogger.setLogPrefix("[Counter?]");
            counterPushRuleExrcutorService.executeCounterPushRules(fact, true);
        } finally {
            TraceLogger.commitTrans();
            RuleMonitorHelper.commitTrans(fact);
        }

        RuleMonitorHelper.commitTrans(fact);

        // -------------------------------- ? -------------------------------------- //
        beforeInvoke("CardRiskDB.CheckResultLog.saveRuleResult");
        Long riskReqId = MapUtils.getLong(fact.ext, Constants.key_reqId);
        boolean outerReqId = riskReqId != null;
        internalRiskFact = offline4jService.saveForOffline(fact);
        if (internalRiskFact != null && internalRiskFact.getReqId() > 0) {
            riskReqId = internalRiskFact.getReqId();
        }

        // ?
        beforeInvoke("CardRiskDB.CheckResultLog.saveRuleResult");
        try {
            TraceLogger.beginTrans(fact.eventId, "S3");
            TraceLogger.setLogPrefix("[?CheckResultLog]");
            if (riskReqId != null && riskReqId > 0) {
                TraceLogger.traceLog("reqId = " + riskReqId);
                saveRuleResult(riskReqId, fact, fact.whitelistResults, outerReqId);
                saveRuleResult(riskReqId, fact, fact.results, outerReqId);
                saveRuleResult(riskReqId, fact, fact.results4Async, outerReqId);
                saveRuleResult(riskReqId, fact, fact.resultsGroupByScene, outerReqId);
                saveRuleResult(riskReqId, fact, fact.resultsGroupByScene4Async, outerReqId);
            }
        } catch (Exception ex) {
            fault("CardRiskDB.CheckResultLog.saveRuleResult");
            logger.error(
                    Contexts.getLogPrefix()
                            + "?[InfoSecurity_CheckResultLog]?.",
                    ex);
        } finally {
            long usage = afterInvoke("CardRiskDB.CheckResultLog.saveRuleResult");
            TraceLogger.traceLog(": " + usage + "ms");
            TraceLogger.commitTrans();
        }

    } catch (Throwable ex) {
        logger.error(Contexts.getLogPrefix() + "invoke handleMessage exception.", ex);
    } finally {
        if (fact != null) {
            // ??DataDispatcher
            try {
                beforeInvoke("DataDispatcher.sendMessage");
                dispatcherMessageSender.sendToDataDispatcher(fact);
            } catch (Exception ex) {
                fault("DataDispatcher.sendMessage");
                logger.error(Contexts.getLogPrefix() + "send dispatcher message fault.", ex);
            } finally {
                afterInvoke("DataDispatcher.sendMessage");
            }

            int riskLevel = MapUtils.getInteger(fact.finalResult, Constants.riskLevel, 0);
            if (riskLevel > 0) {
                // ??Offline4J
                if (internalRiskFact != null
                        && MapUtils.getBoolean(fact.ext, Offline4jService.PUSH_OFFLINE_WORK_ORDER_KEY, false)) {
                    beforeInvoke("Offline.sendMessage");
                    try {
                        Object eventObj = riskEventConvertor.convert(internalRiskFact, riskLevel,
                                HeaderMappingBizType.Offline4J);
                        offlineMessageSender.sendToOffline(eventObj);
                    } catch (Exception ex) {
                        fault("Offline.sendMessage");
                        logger.error(Contexts.getLogPrefix() + "send Offline4J message fault.", ex);
                    } finally {
                        afterInvoke("Offline.sendMessage");
                    }
                }
            }

            try {

                //??factresults0?
                boolean withScene = Constants.eventPointsWithScene.contains(fact.eventPoint);
                if (!withScene) {
                    //?
                    for (Entry<String, Map<String, Object>> entry : fact.results.entrySet()) {
                        String ruleNo = entry.getKey();
                        int rLevel = NumberUtils
                                .toInt(MapUtils.getString(entry.getValue(), Constants.riskLevel));
                        if (rLevel > 0) {
                            //??
                            String distinct = getDistinctValue(fact, ruleNo);
                            RuleMonitorRepository.increaseCounter(fact.getEventPoint(), ruleNo, distinct);
                        }
                    }
                    for (Entry<String, Map<String, Object>> entry : fact.results4Async.entrySet()) {
                        String ruleNo = entry.getKey();
                        int rLevel = NumberUtils
                                .toInt(MapUtils.getString(entry.getValue(), Constants.riskLevel));
                        if (rLevel > 0) {
                            //??
                            String distinct = getDistinctValue(fact, ruleNo);
                            RuleMonitorRepository.increaseCounter(fact.getEventPoint(), ruleNo, distinct);
                        }
                    }
                } else {
                    //
                    for (Entry<String, Map<String, Object>> entry : fact.resultsGroupByScene.entrySet()) {
                        String ruleNo = entry.getKey();
                        int rLevel = NumberUtils
                                .toInt(MapUtils.getString(entry.getValue(), Constants.riskLevel));
                        if (rLevel > 0) {
                            //                                RuleMonitorRepository.increaseCounter(fact.getEventPoint(), ruleNo);
                            //??
                            String distinct = getDistinctValue(fact, ruleNo);
                            RuleMonitorRepository.increaseCounter(fact.getEventPoint(), ruleNo, distinct);
                        }
                    }
                    for (Entry<String, Map<String, Object>> entry : fact.resultsGroupByScene4Async.entrySet()) {
                        String ruleNo = entry.getKey();
                        int rLevel = NumberUtils
                                .toInt(MapUtils.getString(entry.getValue(), Constants.riskLevel));
                        if (rLevel > 0) {
                            //                                RuleMonitorRepository.increaseCounter(fact.getEventPoint(), ruleNo);
                            //??
                            String distinct = getDistinctValue(fact, ruleNo);
                            RuleMonitorRepository.increaseCounter(fact.getEventPoint(), ruleNo, distinct);
                        }
                    }
                }

            } catch (Exception ex) {
                logger.error(Contexts.getLogPrefix() + "RuleMonitorRepository increaseCounter fault.", ex);
            }

        }
    }
}

From source file:com.ctrip.infosec.rule.util.Emitter.java

public static void emit(RiskFact fact, String ruleNo, int riskLevel, String riskMessage, String[] riskScene,
        Map<String, Map<String, Map<String, String>>> subSceneType) {
    boolean _isAsync = MapUtils.getBoolean(fact.ext, Constants.key_isAsync, false);
    if (!Strings.isNullOrEmpty(ruleNo)) {
        Map<String, Object> result = Maps.newHashMap();
        result.put(Constants.riskLevel, riskLevel);
        result.put(Constants.riskMessage, riskMessage);
        result.put(Constants.riskScene, Lists.newArrayList(riskScene));
        result.put(Constants.subSceneType, subSceneType);
        result.put(Constants.async, _isAsync);
        if (!_isAsync) {
            result.put(Constants.ruleType, "S");
            fact.resultsGroupByScene.put(ruleNo, result);
        } else {/*  w w  w.  ja  v a 2  s.co  m*/
            result.put(Constants.ruleType, "SA");
            fact.resultsGroupByScene4Async.put(ruleNo, result);
        }
    }
}

From source file:com.ctrip.infosec.rule.util.Emitter.java

/**
 * ?Counter/*from  w w  w.  ja  v a2  s .c  o  m*/
 */
public static void emit(RiskFact fact, PolicyExecuteResult counterPolicyExecuteResult) {
    if (counterPolicyExecuteResult.getRuleExecuteResults() == null
            || counterPolicyExecuteResult.getRuleExecuteResults().isEmpty()) {
        String resultCode = counterPolicyExecuteResult.getResultCode();
        String resultMessage = counterPolicyExecuteResult.getResultMessage();
        if (!"000".equals(resultCode)) {
            emit(fact, resultCode, resultMessage);
        }
    } else {
        boolean _isAsync = MapUtils.getBoolean(fact.ext, Constants.key_isAsync, false);
        for (CounterRuleExecuteResult ruleExecuteResult : counterPolicyExecuteResult.getRuleExecuteResults()) {
            if (StringUtils.isNotBlank(ruleExecuteResult.getRuleNo())
                    && StringUtils.isNumeric(ruleExecuteResult.getResultCode())) {

                String ruleNo = ruleExecuteResult.getRuleNo();
                int riskLevel = NumberUtils.toInt(ruleExecuteResult.getResultCode(), 0);
                String riskMessage = ruleExecuteResult.getResultMessage();
                String scenes = ruleExecuteResult.getScenes();
                if (riskLevel > 0) {
                    Map<String, Object> result = Maps.newHashMap();
                    result.put(Constants.riskLevel, riskLevel);
                    result.put(Constants.riskMessage, riskMessage);
                    result.put(Constants.async, _isAsync);

                    if (StringUtils.isBlank(scenes)) {
                        if (!_isAsync) {
                            result.put(Constants.ruleType, "N");
                            fact.results.put(ruleNo, result);
                        } else {
                            result.put(Constants.ruleType, "NA");
                            fact.results4Async.put(ruleNo, result);
                        }
                    } else {
                        List<String> riskScenes = Splitter.on(",").omitEmptyStrings().trimResults()
                                .splitToList(scenes);
                        result.put(Constants.riskScene, riskScenes);
                        if (!_isAsync) {
                            result.put(Constants.ruleType, "S");
                            fact.resultsGroupByScene.put(ruleNo, result);
                        } else {
                            result.put(Constants.ruleType, "SA");
                            fact.resultsGroupByScene4Async.put(ruleNo, result);
                        }
                    }

                    boolean withScene = Constants.eventPointsWithScene.contains(fact.eventPoint);
                    TraceLogger.traceLog("[trace] withScene = " + withScene + ", scenes = ["
                            + (scenes == null ? "" : scenes) + "]");
                    if (!withScene) {
                        if (StringUtils.isNotBlank(scenes)) {
                            TraceLogger.traceLog(">>>> [" + ruleNo
                                    + "] : [???] riskLevel = "
                                    + riskLevel + ", riskMessage = " + riskMessage + ", riskScene = [" + scenes
                                    + "]");
                        } else {
                            TraceLogger.traceLog(">>>> [" + ruleNo + "] : riskLevel = " + riskLevel
                                    + ", riskMessage = " + riskMessage);
                        }
                    } else if (withScene) {
                        if (StringUtils.isBlank(scenes)) {
                            TraceLogger.traceLog(">>>> [" + ruleNo
                                    + "] [?]: [?] riskLevel = "
                                    + riskLevel + ", riskMessage = " + riskMessage);
                        } else {
                            TraceLogger.traceLog(">>>> [" + ruleNo + "] [?]: riskLevel = "
                                    + riskLevel + ", riskMessage = " + riskMessage + ", riskScene = [" + scenes
                                    + "]");
                        }
                    }
                }
            }
        }
    }
}

From source file:com.ctrip.infosec.rule.util.Emitter.java

@Deprecated
public static void mergeCounterResults(RiskFact fact, List<CounterRuleExecuteResult> counterExecuteResults) {
    //        String _ruleNo = (String) fact.ext.get(Constants.key_ruleNo);
    boolean _isAsync = MapUtils.getBoolean(fact.ext, Constants.key_isAsync, false);
    if (counterExecuteResults != null && !counterExecuteResults.isEmpty()) {

        for (CounterRuleExecuteResult ruleExecuteResult : counterExecuteResults) {
            if (StringUtils.isNotBlank(ruleExecuteResult.getRuleNo())
                    && StringUtils.isNumeric(ruleExecuteResult.getResultCode())) {

                String ruleNo = ruleExecuteResult.getRuleNo();
                int riskLevel = NumberUtils.toInt(ruleExecuteResult.getResultCode(), 0);
                String riskMessage = ruleExecuteResult.getResultMessage();
                String scenes = ruleExecuteResult.getScenes();
                if (riskLevel > 0) {
                    Map<String, Object> result = Maps.newHashMap();
                    result.put(Constants.riskLevel, riskLevel);
                    result.put(Constants.riskMessage, riskMessage);
                    result.put(Constants.async, _isAsync);

                    if (StringUtils.isBlank(scenes)) {
                        if (!_isAsync) {
                            result.put(Constants.ruleType, "N");
                            fact.results.put(ruleNo, result);
                        } else {
                            result.put(Constants.ruleType, "NA");
                            fact.results4Async.put(ruleNo, result);
                        }/*from  w w  w.  j a va2 s.com*/
                    } else {
                        List<String> riskScenes = Splitter.on(",").omitEmptyStrings().trimResults()
                                .splitToList(scenes);
                        result.put(Constants.riskScene, riskScenes);
                        if (!_isAsync) {
                            result.put(Constants.ruleType, "S");
                            fact.resultsGroupByScene.put(ruleNo, result);
                        } else {
                            result.put(Constants.ruleType, "SA");
                            fact.resultsGroupByScene4Async.put(ruleNo, result);
                        }
                    }

                    boolean withScene = Constants.eventPointsWithScene.contains(fact.eventPoint);
                    TraceLogger.traceLog("[trace] withScene = " + withScene + ", scenes = ["
                            + (scenes == null ? "" : scenes) + "]");
                    if (!withScene) {
                        if (StringUtils.isNotBlank(scenes)) {
                            TraceLogger.traceLog(">>>> [" + ruleNo
                                    + "] : [???] riskLevel = "
                                    + riskLevel + ", riskMessage = " + riskMessage + ", riskScene = [" + scenes
                                    + "]");
                        } else {
                            TraceLogger.traceLog(">>>> [" + ruleNo + "] : riskLevel = " + riskLevel
                                    + ", riskMessage = " + riskMessage);
                        }
                    } else if (withScene) {
                        if (StringUtils.isBlank(scenes)) {
                            TraceLogger.traceLog(">>>> [" + ruleNo
                                    + "] [?]: [?] riskLevel = "
                                    + riskLevel + ", riskMessage = " + riskMessage);
                        } else {
                            TraceLogger.traceLog(">>>> [" + ruleNo + "] [?]: riskLevel = "
                                    + riskLevel + ", riskMessage = " + riskMessage + ", riskScene = [" + scenes
                                    + "]");
                        }
                    }
                }
            }
        }
    }
}