1 19 20 package org.netbeans.modules.websvc.wsitconf.spi; 21 22 import java.util.Collection ; 23 import java.util.Collections ; 24 import java.util.LinkedList ; 25 import java.util.List ; 26 import org.netbeans.modules.websvc.api.jaxws.project.config.JaxWsModel; 27 import org.openide.ErrorManager; 28 import org.openide.nodes.Node; 29 30 34 public class SecurityCheckerRegistry { 35 36 private static SecurityCheckerRegistry instance; 37 38 private List <SecurityChecker> checkers = (List <SecurityChecker>) Collections.synchronizedList(new LinkedList <SecurityChecker>()); 39 40 private static ErrorManager err = ErrorManager.getDefault().getInstance("org.netbeans.modules.websvc.wsitconf.spi"); 42 45 private SecurityCheckerRegistry() {} 46 47 50 public static SecurityCheckerRegistry getDefault(){ 51 if (instance == null) { 52 instance = new SecurityCheckerRegistry(); 53 } 54 return instance; 55 } 56 57 60 public void register(SecurityChecker checker) { 61 if (checker != null) { 62 if (err.isLoggable(ErrorManager.INFORMATIONAL)) { 63 err.log(ErrorManager.INFORMATIONAL, "registerChecker: " + checker + ", dName: " + checker.getDisplayName()); } 65 checkers.add(checker); 66 } 67 } 68 69 72 public void unregister(SecurityChecker checker) { 73 if (checker != null) { 74 if (err.isLoggable(ErrorManager.INFORMATIONAL)) { 75 err.log(ErrorManager.INFORMATIONAL, "unregisterChecker: " + checker + ", dName: " + checker.getDisplayName()); } 77 checkers.remove(checker); 78 } 79 } 80 81 public Collection <SecurityChecker> getSecurityCheckers() { 82 return Collections.unmodifiableList(checkers); 83 } 84 85 public boolean isNonWsitSecurityEnabled(Node node, JaxWsModel jaxWsModel) { 86 if ((node != null) && (jaxWsModel != null)) { 87 Collection <SecurityChecker> secCheckers = getSecurityCheckers(); 88 if ((secCheckers != null) && (!secCheckers.isEmpty())) { 89 for (SecurityChecker sc : secCheckers) { 90 boolean secEnabled = false; 91 try { 92 secEnabled = sc.isSecurityEnabled(node, jaxWsModel); 93 } catch (Exception e) { if (err.isLoggable(ErrorManager.EXCEPTION)) { 95 err.log(ErrorManager.EXCEPTION, "Exception from SecurityChecker: " + e.toString()); } 97 } finally { 98 if (err.isLoggable(ErrorManager.INFORMATIONAL)) { 99 err.log(ErrorManager.INFORMATIONAL, "securityEnabled: " + secEnabled + ", " + sc + ", dName: " + sc.getDisplayName() + ", node: " + node + ", jaxwsmodel: " + jaxWsModel); } 102 } 103 if (secEnabled) { 104 return true; 105 } 106 } 107 } 108 } 109 return false; 110 } 111 112 } 113 | Popular Tags |