Search in sources :

Example 11 with Domain

use of org.nhindirect.config.model.Domain in project nhin-d by DirectProject.

the class DomainController method saveDomain.

/**
	 * Execute the save and return the results
	 */
@PreAuthorize("hasRole('ROLE_ADMIN')")
@RequestMapping(value = "/saveupdate", method = RequestMethod.POST)
public ModelAndView saveDomain(@RequestHeader(value = "X-Requested-With", required = false) String requestedWith, HttpSession session, @RequestParam(value = "submitType") String actionPath, @ModelAttribute("domainForm") DomainForm form, Model model) {
    if (log.isDebugEnabled())
        log.debug("Enter");
    if (log.isDebugEnabled())
        log.debug("Entered saveDomain");
    if (log.isDebugEnabled())
        log.debug("The value of actionPath: " + actionPath);
    ModelAndView mav = new ModelAndView();
    if (actionPath.equalsIgnoreCase("cancel")) {
        if (log.isDebugEnabled()) {
            log.debug("trying to cancel from saveupdate");
        }
        return new ModelAndView("redirect:/config/main");
    } else if ((actionPath.equalsIgnoreCase("update") || actionPath.equalsIgnoreCase("add"))) {
        HashMap<String, String> msgs = new HashMap<String, String>();
        mav.addObject("msgs", msgs);
        mav.setViewName("domain");
        try {
            if (actionPath.equalsIgnoreCase("add")) {
                // Add domain to configuration service
                domainService.addDomain(form.getDomainFromForm());
                session.setAttribute("currentDomainName", form.getDomainName());
                final List<Domain> result = new ArrayList<Domain>(domainService.searchDomains(form.getDomainName(), form.getStatus()));
                if (form.getSelectedBundles() != "") {
                    // Associate trust bundles if selected
                    final String selBundle = form.getSelectedBundles().replace("wHiTeSpAcE", " ");
                    final String[] bundles = selBundle.split(",");
                    int bundleCount = bundles.length;
                    log.debug("# of bundles associated: " + bundleCount);
                    // Associate trust bundles to Domain
                    for (int i = 0; i < bundleCount; i++) {
                        /*
                                     * TODO: Add  incoming and outgoing indicators
                                     */
                        final String[] bundleString = bundles[i].split("\\|\\|\\|\\|");
                        if (bundleString[1].equals("both")) {
                            bundleService.associateTrustBundleToDomain(bundleString[0], result.get(0).getDomainName(), true, true);
                        } else if (bundleString[1].equals("in")) {
                            bundleService.associateTrustBundleToDomain(bundleString[0], result.get(0).getDomainName(), true, false);
                        } else if (bundleString[1].equals("out")) {
                            bundleService.associateTrustBundleToDomain(bundleString[0], result.get(0).getDomainName(), false, true);
                        } else {
                            bundleService.associateTrustBundleToDomain(bundleString[0], result.get(0).getDomainName(), false, false);
                        }
                        log.error("Added Bundle ID #" + bundles[i]);
                    }
                }
                if (result.size() > 0) {
                    form = new DomainForm();
                    form.populate(result.get(0));
                    form.setDomainName(result.get(0).getDomainName());
                    msgs.put("msg", "domain.add.success");
                }
            } else if (actionPath.equalsIgnoreCase("update")) {
                domainService.updateDomain(form.getDomainFromForm());
                final List<Domain> result = new ArrayList<Domain>(domainService.searchDomains(form.getDomainName(), form.getStatus()));
                if (result.size() > 0) {
                    form = new DomainForm();
                    form.populate(result.get(0));
                }
                msgs.put("msg", "domain.update.success");
            }
            final AddressForm addrform = new AddressForm();
            addrform.setId(form.getDomainFromForm().getId());
            model.addAttribute("domainForm", form);
            model.addAttribute("addressForm", addrform);
            final CertificateForm cform = new CertificateForm();
            cform.setId(form.getDomainFromForm().getId());
            AnchorForm aform = new AnchorForm();
            aform.setId(form.getDomainFromForm().getId());
            model.addAttribute("certificateForm", cform);
            model.addAttribute("anchorForm", aform);
            SimpleForm simple = new SimpleForm();
            simple.setId(form.getDomainFromForm().getId());
            model.addAttribute("simpleForm", simple);
            // once certificates and anchors are available change code accordingly
            // begin: add these dummy records too
            final String owner = form.getDomainFromForm().getPostmasterAddress().getEmailAddress();
            try {
                if (owner != null && !owner.equalsIgnoreCase("")) {
                    // BEGIN: temporary code for mocking purposes
                    Collection<Certificate> certlist = null;
                    try {
                        certlist = certService.getCertificatesByOwner(owner);
                        model.addAttribute("certificatesResults", certlist);
                    } catch (ServiceException e) {
                        e.printStackTrace();
                    }
                    Collection<Anchor> anchorlist = null;
                    anchorlist = anchorService.getAnchorsForOwner(owner, false, false, "");
                    // convert Anchor to AnchorForm
                    Collection<AnchorForm> convertedanchors = convertAnchors(anchorlist);
                    // now set anchorsResults
                    model.addAttribute("anchorsResults", convertedanchors);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            // END: temporary code for mocking purposes			
            //  end: add these dummy records too
            model.addAttribute("addressesResults", form.getDomainFromForm().getAddresses());
            model.addAttribute("action", "update");
            if (log.isDebugEnabled()) {
                log.debug("Stored domain: " + form.getDomainFromForm().toString());
            }
        } catch (ServiceException e) {
            log.error(e);
            msgs.put("domainService", "domainService.add.error");
        } catch (Exception ed) {
            log.error(ed);
        }
    }
    if (log.isDebugEnabled())
        log.debug("Exit");
    return new ModelAndView("redirect:/config/domain?id=" + form.getDomainName());
//return mav;
}
Also used : CertificateForm(org.nhindirect.config.ui.form.CertificateForm) SimpleForm(org.nhindirect.config.ui.form.SimpleForm) AnchorForm(org.nhindirect.config.ui.form.AnchorForm) HashMap(java.util.HashMap) ModelAndView(org.springframework.web.servlet.ModelAndView) ArrayList(java.util.ArrayList) ServiceException(org.nhindirect.common.rest.exceptions.ServiceException) IOException(java.io.IOException) ConfigurationServiceException(org.nhindirect.config.service.ConfigurationServiceException) DomainForm(org.nhindirect.config.ui.form.DomainForm) SearchDomainForm(org.nhindirect.config.ui.form.SearchDomainForm) AddressForm(org.nhindirect.config.ui.form.AddressForm) ServiceException(org.nhindirect.common.rest.exceptions.ServiceException) ConfigurationServiceException(org.nhindirect.config.service.ConfigurationServiceException) Collection(java.util.Collection) List(java.util.List) ArrayList(java.util.ArrayList) Domain(org.nhindirect.config.model.Domain) PreAuthorize(org.springframework.security.access.prepost.PreAuthorize) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 12 with Domain

use of org.nhindirect.config.model.Domain 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;
}
Also used : ModelAndView(org.springframework.web.servlet.ModelAndView) ArrayList(java.util.ArrayList) SearchDomainForm(org.nhindirect.config.ui.form.SearchDomainForm) Anchor(org.nhindirect.config.model.Anchor) TrustBundleAnchor(org.nhindirect.config.model.TrustBundleAnchor) ServiceException(org.nhindirect.common.rest.exceptions.ServiceException) ConfigurationServiceException(org.nhindirect.config.service.ConfigurationServiceException) Domain(org.nhindirect.config.model.Domain) PreAuthorize(org.springframework.security.access.prepost.PreAuthorize) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 13 with Domain

use of org.nhindirect.config.model.Domain in project nhin-d by DirectProject.

the class DomainController method addAnchor.

@PreAuthorize("hasRole('ROLE_ADMIN')")
@RequestMapping(value = "/addanchor", method = RequestMethod.POST)
public ModelAndView addAnchor(@RequestHeader(value = "X-Requested-With", required = false) String requestedWith, HttpSession session, @ModelAttribute AnchorForm anchorForm, Model model, @RequestParam(value = "submitType") String actionPath, @RequestParam(value = "id") String id) {
    final String domAttr = (String) session.getAttribute("currentDomainName");
    ModelAndView mav = new ModelAndView();
    String strid = "";
    //anchorForm.getId();
    strid = "" + domAttr;
    Domain dom = null;
    try {
        dom = domainService.getDomain(strid);
    } catch (ServiceException e) {
        e.printStackTrace();
    }
    if (log.isDebugEnabled())
        log.debug("Enter domain/addanchor");
    if (actionPath.equalsIgnoreCase("newanchor") || actionPath.equalsIgnoreCase("add anchor")) {
        strid = "" + anchorForm.getId();
        String owner = "";
        if (dom != null) {
            owner = dom.getDomainName();
        }
        // insert the new address into the Domain list of Addresses
        if (log.isDebugEnabled())
            log.debug("beginning to evaluate filedata");
        try {
            if (!anchorForm.getFileData().isEmpty()) {
                final byte[] bytes = anchorForm.getFileData().getBytes();
                String theUser = "";
                if (bytes != null) {
                    // get the owner from the certificate information
                    // first transform into a certificate
                    CertContainer cont = toCertContainer(bytes);
                    if (cont != null && cont.getCert() != null) {
                        // now get the owner info from the cert
                        theUser = getTrustedEntityName(cont.getCert().getSubjectX500Principal());
                        anchorForm.setTrusteddomainoruser(theUser);
                    }
                }
                // store the bytes somewhere
                final Anchor ank = new Anchor();
                ank.setCertificateData(bytes);
                if (log.isDebugEnabled())
                    log.debug("incoming is: " + anchorForm.isIncoming() + " and outgoing is: " + anchorForm.isOutgoing());
                ank.setIncoming(anchorForm.isIncoming());
                ank.setOutgoing(anchorForm.isOutgoing());
                ank.setOwner(owner);
                ank.setStatus(anchorForm.getStatus());
                anchorService.addAnchor(ank);
                if (log.isDebugEnabled())
                    log.debug("store the anchor certificate into database");
            } else {
                if (log.isDebugEnabled())
                    log.debug("DO NOT store the anchor certificate into database BECAUSE THERE IS NO FILE");
            }
        } catch (ConfigurationServiceException ed) {
            if (log.isDebugEnabled())
                log.error(ed);
        } catch (Exception e) {
            if (log.isDebugEnabled())
                log.error(e.getMessage());
            e.printStackTrace();
        }
        // certificate and anchor forms and results
        try {
            final Collection<Certificate> certs = certService.getCertificatesByOwner(owner);
            model.addAttribute("certificatesResults", certs);
        } catch (Exception e1) {
            e1.printStackTrace();
        }
        try {
            final Collection<Anchor> anchors = anchorService.getAnchorsForOwner(owner, false, false, "");
            final Collection<AnchorForm> convertedanchors = convertAnchors(anchors);
            // now set anchorsResults
            model.addAttribute("anchorsResults", convertedanchors);
        } catch (Exception e1) {
            e1.printStackTrace();
        }
        try {
            CertificateForm cform = new CertificateForm();
            cform.setId(dom.getId());
            model.addAttribute("certificateForm", cform);
        } catch (Exception e1) {
            e1.printStackTrace();
        }
        try {
            AnchorForm aform = new AnchorForm();
            aform.setId(dom.getId());
            model.addAttribute("anchorForm", aform);
        } catch (Exception e1) {
            e1.printStackTrace();
        }
        model.addAttribute("ajaxRequest", AjaxUtils.isAjaxRequest(requestedWith));
        SimpleForm simple = new SimpleForm();
        simple.setId(dom.getId());
        simple.setDomainName(dom.getDomainName());
        model.addAttribute("simpleForm", simple);
        model.addAttribute("addressesResults", dom.getAddresses());
        mav.setViewName("domain");
        // the Form's default button action
        String action = "Update";
        DomainForm form = (DomainForm) session.getAttribute("domainForm");
        if (form == null) {
            form = new DomainForm();
            form.populate(dom);
        }
        model.addAttribute("domainForm", form);
        model.addAttribute("action", action);
        model.addAttribute("ajaxRequest", AjaxUtils.isAjaxRequest(requestedWith));
        mav.addObject("privKeyTypeList", PrivateKeyType.getPrivKeyTypeList());
        mav.addObject("statusList", EntityStatus.getEntityStatusList());
    }
    AddressForm addressForm2 = new AddressForm();
    addressForm2.setDisplayName("");
    addressForm2.setEndpoint("");
    addressForm2.setEmailAddress("");
    addressForm2.setType("");
    addressForm2.setId(Long.parseLong(strid));
    model.addAttribute("addressForm", addressForm2);
    return new ModelAndView("redirect:/config/domain?id=" + dom.getDomainName() + "#tab2");
//return mav;
}
Also used : CertificateForm(org.nhindirect.config.ui.form.CertificateForm) SimpleForm(org.nhindirect.config.ui.form.SimpleForm) AnchorForm(org.nhindirect.config.ui.form.AnchorForm) ModelAndView(org.springframework.web.servlet.ModelAndView) ConfigurationServiceException(org.nhindirect.config.service.ConfigurationServiceException) ServiceException(org.nhindirect.common.rest.exceptions.ServiceException) IOException(java.io.IOException) ConfigurationServiceException(org.nhindirect.config.service.ConfigurationServiceException) DomainForm(org.nhindirect.config.ui.form.DomainForm) SearchDomainForm(org.nhindirect.config.ui.form.SearchDomainForm) Anchor(org.nhindirect.config.model.Anchor) TrustBundleAnchor(org.nhindirect.config.model.TrustBundleAnchor) AddressForm(org.nhindirect.config.ui.form.AddressForm) ServiceException(org.nhindirect.common.rest.exceptions.ServiceException) ConfigurationServiceException(org.nhindirect.config.service.ConfigurationServiceException) Domain(org.nhindirect.config.model.Domain) X509Certificate(java.security.cert.X509Certificate) Certificate(org.nhindirect.config.model.Certificate) PreAuthorize(org.springframework.security.access.prepost.PreAuthorize) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 14 with Domain

use of org.nhindirect.config.model.Domain 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;
}
Also used : SearchDomainForm(org.nhindirect.config.ui.form.SearchDomainForm) ServiceException(org.nhindirect.common.rest.exceptions.ServiceException) ModelAndView(org.springframework.web.servlet.ModelAndView) ArrayList(java.util.ArrayList) Domain(org.nhindirect.config.model.Domain) PreAuthorize(org.springframework.security.access.prepost.PreAuthorize) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Aggregations

Domain (org.nhindirect.config.model.Domain)14 ServiceException (org.nhindirect.common.rest.exceptions.ServiceException)10 SearchDomainForm (org.nhindirect.config.ui.form.SearchDomainForm)10 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)10 ModelAndView (org.springframework.web.servlet.ModelAndView)10 ArrayList (java.util.ArrayList)9 Anchor (org.nhindirect.config.model.Anchor)9 TrustBundleAnchor (org.nhindirect.config.model.TrustBundleAnchor)9 ConfigurationServiceException (org.nhindirect.config.service.ConfigurationServiceException)9 PreAuthorize (org.springframework.security.access.prepost.PreAuthorize)9 X509Certificate (java.security.cert.X509Certificate)8 AddressForm (org.nhindirect.config.ui.form.AddressForm)8 AnchorForm (org.nhindirect.config.ui.form.AnchorForm)8 CertificateForm (org.nhindirect.config.ui.form.CertificateForm)8 DomainForm (org.nhindirect.config.ui.form.DomainForm)8 IOException (java.io.IOException)7 Certificate (org.nhindirect.config.model.Certificate)7 SimpleForm (org.nhindirect.config.ui.form.SimpleForm)5 Address (org.nhindirect.config.model.Address)4 HashMap (java.util.HashMap)3