/** @return 系统是否启用安全机制 */ public static boolean isSecurity() { String security = PropertyHolder.getProperty("security"); if (security != null && "true".equals(security.trim())) { return true; } return false; }
protected void initParameters(final FilterConfig fConfig) { failureUrl = PropertyHolder.getProperty("login.page") + "?state=checkCodeError"; if ("true".equals(PropertyHolder.getProperty("login.code"))) { log.info("启用登录验证码机制"); filter = true; } else { filter = false; log.info("禁用登录验证码机制"); } if (StringUtils.isNotBlank(fConfig.getInitParameter(PARAM_FILTER_PROCESSES_URL))) { filterProcessesUrl = fConfig.getInitParameter(PARAM_FILTER_PROCESSES_URL); } if (StringUtils.isNotBlank(fConfig.getInitParameter(PARAM_CAPTCHA_PARAMTER_NAME))) { captchaParamterName = fConfig.getInitParameter(PARAM_CAPTCHA_PARAMTER_NAME); } }
@Override public void init(FilterConfig fc) throws ServletException { LOG.info("初始化性能过滤器(Initialize the filter performance)"); enabled = PropertyHolder.getBooleanProperty("monitor.performance"); if (enabled) { LOG.info("启用性能分析日志(Enable performance analyzing log)"); } else { LOG.info("禁用性能分析日志(Disable performance analyzing log)"); } }
/** 初始化系统安全拦截信息 */ @PostConstruct public void initSecurityConfigInfo() { String security = PropertyHolder.getProperty("security"); if (security == null || !"true".equals(security.trim())) { log.info("当前系统禁用安全机制"); return; } log.info("开始初始化权限子系统..."); LinkedHashMap<RequestKey, Collection<ConfigAttribute>> requestMap = new LinkedHashMap<>(); SecurityConfig manager = new SecurityConfig("ROLE_MANAGER"); SecurityConfig superManager = new SecurityConfig("ROLE_SUPERMANAGER"); Collection<ConfigAttribute> value = new ArrayList<>(); value.add(manager); value.add(superManager); Collection<String> urls = new LinkedHashSet<>(); String[] urlFiles = PropertyHolder.getProperty("manager.default.url").split(","); for (String urlFile : urlFiles) { Collection<String> url = FileUtils.getClassPathTextFileContent(urlFile); urls.addAll(url); } for (String url : urls) { if (url.contains("=")) { String[] attr = url.split("="); url = attr[0]; String[] roles = attr[1].split(","); Collection<ConfigAttribute> v = new ArrayList<>(); for (String role : roles) { v.add(new SecurityConfig(role)); } // POST RequestKey key = new RequestKey(url, "POST"); requestMap.put(key, v); // GET key = new RequestKey(url, "GET"); requestMap.put(key, v); } else { // POST RequestKey key = new RequestKey(url, "POST"); requestMap.put(key, value); // GET key = new RequestKey(url, "GET"); requestMap.put(key, value); } } for (Command command : serviceFacade.query(Command.class).getModels()) { List<String> paths = ModuleService.getCommandPath(command); Map<String, String> map = ModuleService.getCommandPathToRole(command); for (String path : paths) { RequestKey key = new RequestKey(path.toString().toLowerCase() + ".action*", "POST"); value = new ArrayList<>(); value.add(new SecurityConfig("ROLE_MANAGER" + map.get(path))); value.add(superManager); requestMap.put(key, value); // GET key = new RequestKey(path.toString().toLowerCase() + ".action*", "GET"); requestMap.put(key, value); } } RequestKey key = new RequestKey("/**", "POST"); value = new ArrayList<>(); value.add(superManager); requestMap.put(key, value); // GET key = new RequestKey("/**", "GET"); requestMap.put(key, value); DefaultFilterInvocationSecurityMetadataSource source = new DefaultFilterInvocationSecurityMetadataSource(new AntUrlPathMatcher(), requestMap); filterSecurityInterceptor.setSecurityMetadataSource(source); log.debug("system privilege info:\n"); for (Map.Entry<RequestKey, Collection<ConfigAttribute>> entry : requestMap.entrySet()) { log.debug(entry.getKey().toString()); for (ConfigAttribute att : entry.getValue()) { log.debug("\t" + att.toString()); } } log.info("完成初始化权限子系统..."); }