List of usage examples for org.apache.commons.collections MapUtils getBoolean
public static Boolean getBoolean(Map map, Object key, Boolean defaultValue)
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 + "]"); } } } } } } }