use of org.nhindirect.config.ui.form.SearchDomainForm in project nhin-d by DirectProject.
the class DNSController method navigate.
@PreAuthorize("hasRole('ROLE_ADMIN')")
@RequestMapping(value = "/navigate", method = RequestMethod.GET)
public ModelAndView navigate(@RequestHeader(value = "X-Requested-With", required = false) String requestedWith, HttpSession session, @ModelAttribute DNSEntryForm entryForm, Model model, @RequestParam(value = "submitType") String actionPath) {
if (log.isDebugEnabled())
log.debug("Enter: " + actionPath);
final ModelAndView mav = new ModelAndView();
if ("gotodomains".equalsIgnoreCase(actionPath) || "domains".equalsIgnoreCase(actionPath)) {
final SearchDomainForm form2 = (SearchDomainForm) session.getAttribute("searchDomainForm");
model.addAttribute(form2 != null ? form2 : new SearchDomainForm());
model.addAttribute("ajaxRequest", AjaxUtils.isAjaxRequest(requestedWith));
mav.setViewName("main");
mav.addObject("privKeyTypeList", PrivateKeyType.getPrivKeyTypeList());
mav.addObject("statusList", EntityStatus.getEntityStatusList());
} else if ("gotosettings".equalsIgnoreCase(actionPath) || "settings".equalsIgnoreCase(actionPath)) {
final String action = "add";
model.addAttribute("action", action);
mav.setViewName("settings");
mav.addObject("actionPath", actionPath);
SettingsForm form = (SettingsForm) session.getAttribute("settingsForm");
if (form == null) {
form = new SettingsForm();
}
model.addAttribute("settingsForm", form);
// retrieve list of settings for settingsResults
List<Setting> results = null;
if (settingsService != null) {
try {
final Collection<Setting> settings = settingsService.getSettings();
if (settings != null)
results = new ArrayList<Setting>(settings);
else
results = new ArrayList<Setting>();
} catch (ServiceException e) {
e.printStackTrace();
}
}
model.addAttribute("simpleForm", new SimpleForm());
model.addAttribute("settingsResults", results);
} else if (actionPath.equalsIgnoreCase("gotocertificates") || actionPath.equalsIgnoreCase("certificates")) {
final String action = "Update";
model.addAttribute("action", action);
mav.setViewName("certificates");
mav.addObject("actionPath", actionPath);
CertificateForm form = (CertificateForm) session.getAttribute("certificateForm");
if (form == null) {
form = new CertificateForm();
}
model.addAttribute("certificateForm", form);
// retrieve list of settings for settingsResults
List<Certificate> results = null;
if (certService != null) {
try {
final Collection<Certificate> certs = certService.getAllCertificates();
if (certs != null) {
if (this.keyManager != null && this.keyManager instanceof MutableKeyStoreProtectionManager) {
final KeyStore keyStore = ((MutableKeyStoreProtectionManager) keyManager).getKS();
// the key store manager to see if they have private keys
for (Certificate cert : certs) {
if (!cert.isPrivateKey()) {
try {
final X509Certificate checkCert = CertUtils.toX509Certificate(cert.getData());
final String alias = keyStore.getCertificateAlias(checkCert);
if (!StringUtils.isEmpty(alias)) {
// check if this entry has a private key associated with
// it
final PrivateKey privKey = (PrivateKey) keyStore.getKey(alias, "".toCharArray());
if (privKey != null)
cert.setPrivateKey(true);
}
} catch (Exception e) {
}
}
}
}
results = new ArrayList<Certificate>(certs);
} else
results = new ArrayList<Certificate>();
} catch (ServiceException e) {
e.printStackTrace();
}
}
model.addAttribute("simpleForm", new SimpleForm());
model.addAttribute("certificatesResults", results);
}
if (log.isDebugEnabled())
log.debug("Exit");
return mav;
}
use of org.nhindirect.config.ui.form.SearchDomainForm in project nhin-d by DirectProject.
the class DomainController method removeDomain.
/** removeDomain
*
*
*
*
*/
@PreAuthorize("hasRole('ROLE_ADMIN')")
@RequestMapping(value = "/remove", method = RequestMethod.POST)
public ModelAndView removeDomain(@RequestHeader(value = "X-Requested-With", required = false) String requestedWith, HttpSession session, @ModelAttribute SimpleForm simpleForm, Model model, @RequestParam(value = "submitType") String actionPath) {
final ModelAndView mav = new ModelAndView();
if (log.isDebugEnabled())
log.debug("Enter domain/remove");
if (log.isDebugEnabled())
log.debug("the list of checkboxes checked or not is: " + simpleForm.getRemove().toString());
if (domainService != null) {
int cnt = simpleForm.getRemove().size();
for (int x = 0; x < cnt; x++) {
try {
String strid = simpleForm.getRemove().get(x);
Domain dom = null;
try {
dom = domainService.getDomain(strid);
} catch (ServiceException e) {
e.printStackTrace();
}
if (dom != null) {
String owner = dom.getDomainName();
if (log.isDebugEnabled())
log.debug("removing domain with name: " + strid);
domainService.deleteDomain(dom.getDomainName());
// now delete anchors
try {
// get list of certificates for this domain
final Collection<Anchor> certs = anchorService.getAnchorsForOwner(owner, false, false, "");
if (certs != null && !certs.isEmpty()) {
final ArrayList<Long> certtoberemovedlist = new ArrayList<Long>();
// appropriate ones
for (Iterator<Anchor> iter = certs.iterator(); iter.hasNext(); ) {
Anchor t = (Anchor) iter.next();
certtoberemovedlist.add(t.getId());
}
// from the configSvc
if (log.isDebugEnabled())
log.debug(" Trying to remove anchors from database");
anchorService.deleteAnchorsByIds(certtoberemovedlist);
if (log.isDebugEnabled())
log.debug(" SUCCESS Trying to remove anchors");
}
} catch (ServiceException e) {
if (log.isDebugEnabled())
log.error(e);
}
}
} catch (ServiceException e) {
if (log.isDebugEnabled())
log.error(e);
}
}
}
SearchDomainForm form2 = (SearchDomainForm) session.getAttribute("searchDomainForm");
model.addAttribute(form2 != null ? form2 : new SearchDomainForm());
model.addAttribute("ajaxRequest", AjaxUtils.isAjaxRequest(requestedWith));
// Get all domains managed by this HISP
String domain = "%";
List<Domain> results = null;
if (domainService != null) {
try {
List<Domain> domains = new ArrayList<Domain>();
Collection<Domain> enabledDomains = domainService.searchDomains(domain, EntityStatus.ENABLED);
Collection<Domain> disabledDomains = domainService.searchDomains(domain, EntityStatus.DISABLED);
Collection<Domain> newDomains = domainService.searchDomains(domain, EntityStatus.NEW);
if (!enabledDomains.isEmpty()) {
domains.addAll(enabledDomains);
}
if (!disabledDomains.isEmpty()) {
domains.addAll(disabledDomains);
}
if (newDomains != null) {
domains.addAll(newDomains);
}
results = domains;
} catch (ServiceException e) {
e.printStackTrace();
}
}
model.addAttribute("searchResults", results);
mav.setViewName("main");
mav.addObject("privKeyTypeList", PrivateKeyType.getPrivKeyTypeList());
mav.addObject("statusList", EntityStatus.getEntityStatusList());
mav.addObject("searchResults", results);
mav.addObject("statusList", EntityStatus.getEntityStatusList());
return mav;
}
use of org.nhindirect.config.ui.form.SearchDomainForm in project nhin-d by DirectProject.
the class MainController method display.
/**
* Return the login page when requested
* @return
*/
@PreAuthorize("hasRole('ROLE_ADMIN')")
@RequestMapping(method = RequestMethod.GET)
public ModelAndView display(@RequestHeader(value = "X-Requested-With", required = false) String requestedWith, HttpSession session, @ModelAttribute SimpleForm simpleForm, Model model) {
if (log.isDebugEnabled())
log.debug("Enter");
ModelAndView mav = new ModelAndView();
SearchDomainForm form = (SearchDomainForm) session.getAttribute("searchDomainForm");
model.addAttribute(form != null ? form : new SearchDomainForm());
model.addAttribute("ajaxRequest", AjaxUtils.isAjaxRequest(requestedWith));
mav.setViewName("main");
mav.addObject("privKeyTypeList", PrivateKeyType.getPrivKeyTypeList());
mav.addObject("statusList", EntityStatus.getEntityStatusList());
mav.addObject("searchTerm", "");
// Get all domains managed by this HISP
String domain = "%";
List<Domain> results = null;
if (domainService != null) {
try {
final Collection<Domain> enabledDomains = domainService.searchDomains(domain, org.nhindirect.config.model.EntityStatus.ENABLED);
final Collection<Domain> disabledDomains = domainService.searchDomains(domain, org.nhindirect.config.model.EntityStatus.DISABLED);
Collection<Domain> domains = domainService.searchDomains(domain, org.nhindirect.config.model.EntityStatus.NEW);
if (domains.isEmpty())
domains = new ArrayList<Domain>();
if (enabledDomains != null && !enabledDomains.isEmpty()) {
log.error(enabledDomains);
if (domains.isEmpty()) {
domains = enabledDomains;
} else {
domains.addAll(enabledDomains);
}
}
if (disabledDomains != null && !disabledDomains.isEmpty()) {
if (domains.isEmpty()) {
domains = disabledDomains;
} else {
domains.addAll(disabledDomains);
}
}
if (!domains.isEmpty()) {
results = new ArrayList<Domain>(domains);
} else {
results = new ArrayList<Domain>();
}
} catch (ServiceException e) {
e.printStackTrace();
}
}
model.addAttribute("searchResults", results);
mav.setViewName("main");
mav.addObject("privKeyTypeList", PrivateKeyType.getPrivKeyTypeList());
mav.addObject("statusList", EntityStatus.getEntityStatusList());
mav.addObject("searchResults", results);
if (log.isDebugEnabled())
log.debug("Exit");
return mav;
}
use of org.nhindirect.config.ui.form.SearchDomainForm in project nhin-d by DirectProject.
the class MainController method search.
/**
* Execute the search and return the results
*/
@PreAuthorize("hasRole('ROLE_ADMIN')")
@RequestMapping(value = "/search", method = RequestMethod.GET)
public ModelAndView search(@RequestHeader(value = "X-Requested-With", required = false) String requestedWith, HttpSession session, @ModelAttribute SimpleForm simpleForm, Model model, @RequestParam(value = "submitType") String actionPath, @RequestParam(value = "domainName", required = false) String searchDomainName, @RequestParam(value = "status", required = false) EntityStatus searchStatus) {
log.error("Hit Search Controller");
if (log.isDebugEnabled()) {
log.debug("Enter search");
}
String message = "Search complete";
ModelAndView mav = new ModelAndView();
if (actionPath.equalsIgnoreCase("gotosettings") || actionPath.equalsIgnoreCase("settings")) {
if (log.isDebugEnabled()) {
log.debug("trying to go to the settings page");
}
String action = "add";
model.addAttribute("action", action);
// Set view for this method
mav.setViewName("settings");
mav.addObject("actionPath", "gotosettings");
// Initialize default settings form
SettingsForm form = (SettingsForm) session.getAttribute("settingsForm");
if (form == null) {
form = new SettingsForm();
}
model.addAttribute("settingsForm", form);
// Retrieve list of settings for settingsResults
List<Setting> results = null;
if (settingsService != null) {
try {
final Collection<Setting> settings = settingsService.getSettings();
if (settings != null) {
results = new ArrayList<Setting>(settings);
} else {
results = new ArrayList<Setting>();
}
} catch (ServiceException e) {
}
}
model.addAttribute("simpleForm", new SimpleForm());
model.addAttribute("settingsResults", results);
} else if (actionPath.equalsIgnoreCase("gotocertificates") || actionPath.equalsIgnoreCase("certificates")) {
/*************************************
* Manage Certificates
*
*************************************/
//if (log.isDebugEnabled()) {
log.error("trying to go to the certificates page");
//}
final String action = "Update";
model.addAttribute("action", action);
mav.setViewName("certificates");
mav.addObject("privKeyTypeList", PrivateKeyType.getPrivKeyTypeList());
mav.addObject("actionPath", "gotocertificates");
CertificateForm form = (CertificateForm) session.getAttribute("certificateForm");
if (form == null) {
form = new CertificateForm();
}
model.addAttribute("certificateForm", form);
// retrieve list of settings for settingsResults
List<Certificate> results = null;
if (certService != null) {
try {
final Collection<Certificate> certs = certService.getAllCertificates();
if (certs != null) {
if (this.keyManager != null && this.keyManager instanceof MutableKeyStoreProtectionManager) {
final KeyStore keyStore = ((MutableKeyStoreProtectionManager) keyManager).getKS();
// the key store manager to see if they have private keys
for (Certificate cert : certs) {
if (!cert.isPrivateKey()) {
try {
final X509Certificate checkCert = CertUtils.toX509Certificate(cert.getData());
final String alias = keyStore.getCertificateAlias(checkCert);
if (!StringUtils.isEmpty(alias)) {
// check if this entry has a private key associated with
// it
final PrivateKey privKey = (PrivateKey) keyStore.getKey(alias, "".toCharArray());
if (privKey != null)
cert.setPrivateKey(true);
}
} catch (Exception e) {
}
}
}
}
results = new ArrayList<Certificate>(certs);
} else {
results = new ArrayList<Certificate>();
}
} catch (ServiceException e) {
}
}
model.addAttribute("simpleForm", new SimpleForm());
model.addAttribute("certificatesResults", results);
} else if (actionPath.equalsIgnoreCase("newdomain") || actionPath.equalsIgnoreCase("new domain")) {
if (log.isDebugEnabled()) {
log.debug("trying to go to the new domain page");
}
final HashMap<String, String> msgs = new HashMap<String, String>();
mav.addObject("msgs", msgs);
model.addAttribute("simpleForm", new SimpleForm());
final AddressForm addrform = new AddressForm();
addrform.setId(0L);
model.addAttribute("addressForm", addrform);
// TODO: once certificates and anchors are available change code accordingly
final CertificateForm cform = new CertificateForm();
//cform.setId(0L);
final AnchorForm aform = new AnchorForm();
aform.setId(0L);
model.addAttribute("certificateForm", cform);
model.addAttribute("anchorForm", aform);
final String action = "Add";
DomainForm form = (DomainForm) session.getAttribute("domainForm");
if (form == null) {
form = new DomainForm();
}
model.addAttribute("domainForm", form);
model.addAttribute("action", action);
mav.setViewName("domain");
mav.addObject("actionPath", "newdomain");
mav.addObject("privKeyTypeList", PrivateKeyType.getPrivKeyTypeList());
mav.addObject("statusList", EntityStatus.getEntityStatusList());
} else if (actionPath.equalsIgnoreCase("gotodns") || actionPath.equalsIgnoreCase("DNS Entries")) {
if (log.isDebugEnabled()) {
log.debug("Entering DNS Management page");
}
final HashMap<String, String> msgs = new HashMap<String, String>();
mav.addObject("msgs", msgs);
final String action = "Update";
model.addAttribute("action", action);
// get all DNSType.A.getValue() records
// GET A RECORDS
Collection<DNSRecord> arecords = null;
arecords = getDnsRecords(DNSType.A.getValue());
model.addAttribute("dnsARecordResults", arecords);
// GET A4 RECORDS
Collection<DNSRecord> a4records = null;
a4records = getDnsRecords(DNSType.AAAA.getValue());
model.addAttribute("dnsA4RecordResults", a4records);
// GET C RECORDS
Collection<DNSRecord> crecords = null;
crecords = getDnsRecords(DNSType.CNAME.getValue());
model.addAttribute("dnsCnameRecordResults", crecords);
// GET Cert RECORDS
Collection<DNSRecord> certrecords = null;
certrecords = getDnsRecords(DNSType.CERT.getValue());
model.addAttribute("dnsCertRecordResults", certrecords);
// GET MX RECORDS
Collection<DNSRecord> mxrecords = null;
mxrecords = getDnsRecords(DNSType.MX.getValue());
model.addAttribute("dnsMxRecordResults", mxrecords);
// GET SRV RECORDS
Collection<DNSRecord> srvrecords = null;
srvrecords = getDnsRecords(DNSType.SRV.getValue());
model.addAttribute("dnsSrvRecordResults", srvrecords);
mav.setViewName("dns");
mav.addObject("actionPath", "gotodns");
model.addAttribute("AdnsForm", new DNSEntryForm());
model.addAttribute("AAdnsForm", new DNSEntryForm());
model.addAttribute("CdnsForm", new DNSEntryForm());
model.addAttribute("CertdnsForm", new DNSEntryForm());
model.addAttribute("MXdnsForm", new DNSEntryForm());
model.addAttribute("SrvdnsForm", new DNSEntryForm());
refreshModelFromService(model);
model.addAttribute("simpleForm", new SimpleForm());
} else if (actionPath.equalsIgnoreCase("ManagePolicies") || actionPath.equalsIgnoreCase("Policies")) {
if (log.isDebugEnabled()) {
log.debug("trying to go to the Policies page");
}
final String action = "Update";
model.addAttribute("action", action);
mav.setViewName("policies");
mav.addObject("actionPath", "gotopolicies");
PolicyForm form = (PolicyForm) session.getAttribute("policyForm");
if (form == null) {
form = new PolicyForm();
}
model.addAttribute("policyForm", form);
Collection<CertPolicy> policies = null;
try {
policies = policyService.getPolicies();
} catch (Exception e) {
System.out.println("Failed to lookup policies: " + e.getMessage());
}
if (policies != null) {
model.addAttribute("policies", policies);
} else {
model.addAttribute("policies", "");
}
/*
// retrieve list of settings for settingsResults
List<Certificate> results = null;
if (configSvc != null) {
// Process data for Trust Bundle View
try {
// Get Trust Bundles
Collection<TrustBundle> trustBundles = configSvc.getTrustBundles(true);
if (trustBundles == null)
trustBundles = Collections.emptyList();
Map<String, Object> bundleMap = new HashMap<String, Object>(trustBundles.size());
Collection<TrustBundleAnchor> tbAnchors; // Store anchors for each bundle
for(TrustBundle bundle : trustBundles)
{
tbAnchors = bundle.getTrustBundleAnchors();
Map<TrustBundleAnchor, String> anchorMap = new HashMap<TrustBundleAnchor, String>(tbAnchors.size());
//String[] anchorDNs = new String[tbAnchors.size()]; // String array for storing anchor DNs
int curAnchor = 0; // Counter as we iterate through anchor list
// Loop through anchors to collect some information about the certificates
for(TrustBundleAnchor anchor : tbAnchors) {
try {
X509Certificate cert = anchor.toCertificate();
String subjectDN = cert.getSubjectDN().toString();
anchorMap.put(anchor, subjectDN);
} catch (org.nhindirect.config.store.CertificateException ex) {
}
curAnchor++;
}
bundleMap.put(bundle.getBundleName(), anchorMap);
}
model.addAttribute("bundleMap", bundleMap);
model.addAttribute("trustBundles", trustBundles);
} catch (ConfigurationServiceException e1) {
e1.printStackTrace();
}
}
*/
model.addAttribute("simpleForm", new SimpleForm());
} else if (actionPath.equalsIgnoreCase("ManageTrustBundles") || actionPath.equalsIgnoreCase("Bundles")) {
if (log.isDebugEnabled()) {
log.debug("trying to go to the Bundles page");
}
final String action = "Update";
model.addAttribute("action", action);
mav.setViewName("bundles");
mav.addObject("actionPath", "gotobundles");
BundleForm form = (BundleForm) session.getAttribute("BundleForm");
if (form == null) {
form = new BundleForm();
}
model.addAttribute("bundleForm", form);
// retrieve list of settings for settingsResults
if (bundleService != null) {
// Process data for Trust Bundle View
try {
// Get Trust Bundles
Collection<TrustBundle> trustBundles = bundleService.getTrustBundles(true);
if (trustBundles == null) {
trustBundles = Collections.emptyList();
}
final Map<String, Object> bundleMap = new HashMap<String, Object>(trustBundles.size());
// Store anchors for each bundle
Collection<TrustBundleAnchor> tbAnchors;
for (TrustBundle bundle : trustBundles) {
tbAnchors = bundle.getTrustBundleAnchors();
final Map<TrustBundleAnchor, String> anchorMap = new HashMap<TrustBundleAnchor, String>(tbAnchors.size());
// Loop through anchors to collect some information about the certificates
for (TrustBundleAnchor anchor : tbAnchors) {
final X509Certificate cert = anchor.getAsX509Certificate();
final String subjectDN = cert.getSubjectDN().toString();
anchorMap.put(anchor, subjectDN);
}
bundleMap.put(bundle.getBundleName(), anchorMap);
}
model.addAttribute("bundleMap", bundleMap);
model.addAttribute("trustBundles", trustBundles);
} catch (ServiceException e1) {
e1.printStackTrace();
}
}
model.addAttribute("simpleForm", new SimpleForm());
} else {
SearchDomainForm form = (SearchDomainForm) session.getAttribute("searchDomainForm");
if (form == null) {
form = new SearchDomainForm();
}
model.addAttribute(form);
model.addAttribute("ajaxRequest", AjaxUtils.isAjaxRequest(requestedWith));
final String domain = (!searchDomainName.isEmpty()) ? searchDomainName : "%";
mav.addObject("searchTerm", searchDomainName);
EntityStatus status = searchStatus;
List<Domain> results = null;
if (domainService != null) {
try {
final Collection<Domain> domains = domainService.searchDomains(domain, org.nhindirect.config.model.EntityStatus.valueOf(status.toString()));
if (domains != null) {
results = new ArrayList<Domain>(domains);
} else {
results = new ArrayList<Domain>();
}
} catch (ServiceException e1) {
e1.printStackTrace();
}
}
if (AjaxUtils.isAjaxRequest(requestedWith)) {
// prepare model for rendering success message in this request
model.addAttribute("message", new Message(MessageType.success, message));
model.addAttribute("ajaxRequest", true);
model.addAttribute("searchResults", results);
return null;
}
mav.setViewName("main");
mav.addObject("privKeyTypeList", PrivateKeyType.getPrivKeyTypeList());
mav.addObject("statusList", EntityStatus.getEntityStatusList());
mav.addObject("searchResults", results);
}
if (log.isDebugEnabled()) {
log.debug("Exit");
}
return mav;
}
Aggregations