📄 securityhelper.java
字号:
{ if( pattern.equals( "*" ) ) { return true; } if( pattern.equals("?" ) ) { return org != null && org.trim().length() > 0; } return org.matches( pattern ); } public void addExceptionConfig( String exception, String page ) { this.exceptions.put(exception, page); } public void addExceptionConfig( Element element ) { String exception = element.getAttribute("name"); String redirect = element.getAttribute("redirect"); if( redirect == null || redirect.trim().length() == 0 ) { NodeList nls = element.getElementsByTagName("redirect"); if( nls != null && nls.getLength() > 0 ) { Element redirectElement = (Element) nls.item(0); redirect = redirectElement.getAttribute("to"); if( redirect == null || redirect.trim().length() == 0 ) { redirect = redirectElement.getTextContent(); } } } this.addExceptionConfig(exception, redirect); } public void addAuthenticationConfig( Element element ) { NodeList nl = element.getElementsByTagName( "provider" ); if( nl.getLength() > 0 ) { try { Element providerElement = ((Element) nl.item(0)); String className= providerElement.getAttribute("class"); securityProvider = (SecurityProvider) Class.forName( className ).newInstance(); securityProvider.setProviderConfig( providerElement ); //securityProvider.setPublicTokenKey(text); } catch (Exception ex) { logger.error("Thrown the Exception %s\n", ex); //logger.fatal(ex.getMessage(), ex); throw new RuntimeException( ex.getMessage(), ex ); } } } public void init( Element element ) { if( "page".equals( element.getTagName() ) ) { ///this is page; addPageSecurityConfig( element ); return; } if( "exception".equals(element.getTagName() ) ) { addExceptionConfig( element ); return; } if( "authentication".equals(element.getTagName())) { addAuthenticationConfig( element ); return; } if( "contentProvider".equals(element.getTagName() ) ) { configContentProvider( element ); return; } } public String getEditTemplate(String viewId, String contentPath) { Iterator<Map.Entry<String, String>> patterns = editContentTemplate.entrySet().iterator(); while( patterns.hasNext() ) { Map.Entry<String, String> entry = patterns.next(); if( this.matchPattern(viewId, entry.getKey() ) ) { String template = entry.getValue(); if( template.startsWith( "~/" ) ) { template = template.substring(1); } return template; } } return null; //return false; } public String getContentTemplate( String viewId, String contentPath ) { Iterator<Map.Entry<String, String>> patterns = contentPattern.entrySet().iterator(); while( patterns.hasNext() ) { Map.Entry<String, String> entry = patterns.next(); if( this.matchPattern(viewId, entry.getKey() ) ) { String template = entry.getValue(); if( template.startsWith( "~/" ) ) { template = template.substring(1); } return template; } } return null; //return false; } public ContentFactory getContentProviderFactory() { return factory; //return ContentFactory.createFactory(); } private void configContentProvider(Element element) { try { ///providerFactory String factoryClass = element.getAttribute("factory"); String pattern = element.getAttribute("pattern"); NodeList children = element.getChildNodes(); for( int i = 0; i < children.getLength(); i ++ ) { Node nd = children.item(i); if( nd instanceof Element ) { Element elm = (Element) nd; if( "factory".equals(elm.getTagName() ) ) { factoryClass = elm.getTextContent(); } else if( "template".equals(elm.getTagName() ) ) { String viewPattern = elm.getAttribute("pattern"); if( viewPattern == null || viewPattern.trim().length() == 0 ) { viewPattern = pattern; } if( viewPattern != null && viewPattern.trim().length() > 0 ) { String template = elm.getTextContent(); if( template != null && template.trim().length() > 0 ) { this.contentPattern.put( viewPattern, template ); } String editTemplate = elm.getAttribute("editTemplate"); if( editTemplate != null && editTemplate.trim().length() > 0 ) { editContentTemplate.put( viewPattern, editTemplate ); } } } } } if( factoryClass != null && factoryClass.trim().length() > 0 ) { System.setProperty( ContentFactory.CONTENT_FACTORY, factoryClass); } ///we assume that was setup by Sytem.Property. factory = ContentFactory.createFactory(); } catch (ContentException ex) { logger.warn("Thrown the Exception %s\n", ex); //Logger.getLogger(SecurityHelper.class.getName()).log(Level.SEVERE, null, ex); } ///pattern ///parameters } public void init(FilterConfig config) { try { System.out.println(config.getInitParameter("nible.securityConfig")); InputStream configInputStream = config.getServletContext().getResourceAsStream(config.getInitParameter("nible.securityConfig")); DocumentBuilder builder = null; DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); builder = factory.newDocumentBuilder(); Document doc = builder.parse(configInputStream); NodeList elms = doc.getElementsByTagName("security"); if( elms != null && elms.getLength() == 1 ) { ////successed parse file Element securityElement = (Element) elms.item(0); NodeList children = securityElement.getChildNodes(); for( int i = 0; i < children.getLength(); i ++ ) { Node nd = children.item(i); if( nd.getNodeType() == Node.ELEMENT_NODE ) { init( (Element) nd ); } } } } catch (SAXException ex) { logger.info("Thrown the Exception %s\n", ex); //Logger.getLogger(SecurityHelper.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { logger.info("Thrown the Exception %s\n", ex); } catch (ParserConfigurationException ex) { logger.info("Thrown the Exception %s\n", ex); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -