Project

General

Profile

« Previous | Next » 

Revision 9318

set session.subject so libclient can look up certificate. Seems like the default behavior may have changed?

View differences:

src/edu/ucsb/nceas/metacat/admin/D1Admin.java
40 40
import org.dataone.service.types.v2.NodeList;
41 41
import org.dataone.service.types.v1.NodeReference;
42 42
import org.dataone.service.types.v1.Session;
43
import org.dataone.service.types.v1.Subject;
43 44

  
44 45
import edu.ucsb.nceas.metacat.IdentifierManager;
45 46
import edu.ucsb.nceas.metacat.dataone.MNodeService;
......
437 438
        // check if this is new or an update
438 439
        boolean update = isNodeRegistered(node.getIdentifier().getValue());
439 440
        
440
        // Session is null, because the libclient code automatically sets up an
441
        // SSL session for us using the client certificate provided
441
        // Set DN so we can look up session in libclient
442 442
        Session session = null;
443
        try {
444
	        session = new Session();
445
	        Subject subject = new Subject();
446
	        subject.setValue(CertificateManager.getInstance().getSubjectDN(CertificateManager.getInstance().loadCertificateFromFile(mnCertificatePath)));
447
			session.setSubject(subject);
448
        } catch (Exception e) {
449
        	logMetacat.error("Could not set session subject using certificate location" + e.getMessage(), e);
450
        }
451
		
443 452
        if (update) {
444 453
        	logMetacat.debug("Updating node with DataONE. " + cn.getNodeBaseServiceUrl());
445 454
            boolean result = cn.updateNodeCapabilities(session, node.getIdentifier(), node);

Also available in: Unified diff