1org.dataone.integration.it.apiTests.MNStorageV2IT294.684ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:44 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> <input type="hidden" name="title" value="InvalidToken at /v2/object"> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135743619_path-unicode-ascii-escaped-%3F' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.8848006462063453348.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.2722731137517222158.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686019' CONTENT_TYPE 'multipart/form-data; boundary=2NwbBqxICKOWZMb5sd7Z411LxnQic9' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41008' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867863764818' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867863764535' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867863764204' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867863764869' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f5403f77588> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f5408c8f0f0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135743619_path-unicode-ascii-escaped-%3F; FilePart:object = /tmp/mmp.output.2722731137517222158.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.8848006462063453348.tmp (1015 bytes); ]java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line:
InvalidToken at /v2/object
name: InvalidToken
errorCode: 401
detailCode: 0
description:
Error extracting session from certificate. error="name: InvalidToken
errorCode: 401
detailCode: 0
description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""
"
Request Method:
POST
Request URL:
https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object
Django Version:
1.11.6
Exception Type:
InvalidToken
Exception Value:
name: InvalidToken
errorCode: 401
detailCode: 0
description:
Error extracting session from certificate. error="name: InvalidToken
errorCode: 401
detailCode: 0
description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""
"
Exception Location:
/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69
Python Executable:
/var/local/dataone/gmn_venv/bin/python
Python Version:
2.7.12
Python Path:
['/var/local/dataone/gmn_venv/lib/python2.7',
'/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu',
'/var/local/dataone/gmn_venv/lib/python2.7/lib-tk',
'/var/local/dataone/gmn_venv/lib/python2.7/lib-old',
'/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages',
'/var/local/dataone/gmn_venv/lib/python2.7/site-packages',
'/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn',
'/var/local/dataone/gmn_venv/lib/python2.7/site-packages']
Server time:
Mon, 5 Feb 2018 21:57:44 +0000
Traceback
Switch to copy-and-paste view
/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner
This decorator is automatically applied to all middleware to ensure that
no middleware leaks an exception and that the next middleware in the stack
can rely on getting a response instead of an exception.
"""
@wraps(get_response, assigned=available_attrs(get_response))
def inner(request):
try:
response = get_response(request) ...
except Exception as exc:
response = response_for_exception(request, exc)
return response
return inner
▶ Local vars
Variable
Value
exc
InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken
errorCode: 401
detailCode: 0
description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""
"", identifier="None", nodeId="None", traceInformation="None")
get_response
<bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>>
request
<D1WSGIRequest: POST '/mn/v2/object'>
/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response
# Apply request middleware
for middleware_method in self._request_middleware:
response = middleware_method(request)
if response:
break
if response is None:
response = self._get_response(request) ...
return response
▶ Local vars
Variable
Value
middleware_method
<bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>>
request
<D1WSGIRequest: POST '/mn/v2/object'>
response
None
self
<_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>
/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response
resolver_match = resolver.resolve(request.path_info)
callback, callback_args, callback_kwargs = resolver_match
request.resolver_match = resolver_match
# Apply view middleware
for middleware_method in self._view_middleware:
response = middleware_method(request, callback, callback_args, callback_kwargs) ...
if response:
break
if response is None:
wrapped_callback = self.make_view_atomic(callback)
try:
▶ Local vars
Variable
Value
callback
<function dispatch_object_list at 0x7f53fb9d07d0>
callback_args
()
callback_kwargs
{}
middleware_method
<bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>>
request
<D1WSGIRequest: POST '/mn/v2/object'>
resolver
<RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/>
resolver_match
ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[])
response
None
self
<_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>
/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view
logging.info(
u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"'
.format(
view_func.__name__, request.method, view_args, view_kwargs, request.path_info
)
)
# logging.debug(request.headers)
self.process_session(request) ...
def process_session(self, request):
# For simulating an HTTPS connection with client authentication when
# debugging via regular HTTP, two mechanisms are supported. (1) A full
# client side certificate can be included and (2) a list of subjects can be
# included. Both use vendor specific extensions (HTTP headers that start
▶ Local vars
Variable
Value
request
<D1WSGIRequest: POST '/mn/v2/object'>
self
<d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>
view_args
()
view_func
<function dispatch_object_list at 0x7f53fb9d07d0>
view_kwargs
{}
/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session
# client side certificate can be included and (2) a list of subjects can be
# included. Both use vendor specific extensions (HTTP headers that start
# with the string "VENDOR_".) In some testing scenarios, it is convenient to
# submit lists of subjects without having to generate certificates. In other
# scenarios, it is desirable to simulate an HTTPS interaction as closely as
# possible by providing a complete certificate.
request.primary_subject_str, request.all_subjects_set = (
self.get_active_subject_set(request) ...
)
def get_active_subject_set(self, request):
"""Get a set containing all subjects for which the current connection has
been successfully authenticated
"""
▶ Local vars
Variable
Value
request
<D1WSGIRequest: POST '/mn/v2/object'>
self
<d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>
/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set
request.META['SSL_CLIENT_CERT'] = \
self.pem_in_http_header_to_pem_in_string(
request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE'])
# Add subjects from any provided certificate and JWT and store them in
# the Django request obj.
cert_primary_str, cert_equivalent_set = (
d1_gmn.app.middleware.session_cert.get_subjects(request) ...
)
jwt_subject_list = (
d1_gmn.app.middleware.session_jwt.
validate_jwt_and_get_subject_list(request)
)
primary_subject_str = cert_primary_str
▶ Local vars
Variable
Value
request
<D1WSGIRequest: POST '/mn/v2/object'>
self
<d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>
/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects
"""
if _is_certificate_provided(request):
try:
return get_authenticated_subjects(request.META['SSL_CLIENT_CERT'])
except Exception as e:
raise d1_common.types.exceptions.InvalidToken(
0,
u'Error extracting session from certificate. error="{}"'.format(str(e)) ...
)
else:
return d1_common.const.SUBJECT_PUBLIC, set()
def get_authenticated_subjects(cert_pem):
▶ Local vars
Variable
Value
e
InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None")
request
<D1WSGIRequest: POST '/mn/v2/object'>
<input type="hidden" name="title"
value="InvalidToken at /v2/object">
Environment:
Request Method: POST
Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object
Django Version: 1.11.6
Python Version: 2.7.12
Installed Applications:
['django.contrib.staticfiles',
'd1_gmn.app',
'd1_gmn.app.startup.GMNStartupChecks']
Installed Middleware:
('d1_gmn.app.middleware.request_handler.RequestHandler',
'd1_gmn.app.middleware.exception_handler.ExceptionHandler',
'd1_gmn.app.middleware.response_handler.ResponseHandler',
'd1_gmn.app.middleware.profiling_handler.ProfilingHandler',
'd1_gmn.app.middleware.view_handler.ViewHandler')
Traceback:
File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner
41. response = get_response(request)
File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response
249. response = self._get_response(request)
File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
178. response = middleware_method(request, callback, callback_args, callback_kwargs)
File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view
47. self.process_session(request)
File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session
59. self.get_active_subject_set(request)
File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set
76. d1_gmn.app.middleware.session_cert.get_subjects(request)
File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects
69. u'Error extracting session from certificate. error="{}"'.format(str(e))
Exception Type: InvalidToken at /v2/object
Exception Value: name: InvalidToken
errorCode: 401
detailCode: 0
description:
Error extracting session from certificate. error="name: InvalidToken
errorCode: 401
detailCode: 0
description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""
"
Request information
USER
[unable to retrieve the current user]
GET
No GET data
POST
Variable
Value
pid
u'testMNodeTier3:201836135743619_path-unicode-ascii-escaped-%3F'
FILES
Variable
Value
sysmeta
<InMemoryUploadedFile: mmp.output.8848006462063453348.tmp (application/octet-stream)>
object
<InMemoryUploadedFile: mmp.output.2722731137517222158.tmp (application/octet-stream)>
COOKIES
No cookie data
META
Variable
Value
CONTENT_LENGTH
'686019'
CONTENT_TYPE
'multipart/form-data; boundary=2NwbBqxICKOWZMb5sd7Z411LxnQic9'
CONTEXT_DOCUMENT_ROOT
'/var/www/html'
CONTEXT_PREFIX
''
DOCUMENT_ROOT
'/var/www/html'
GATEWAY_INTERFACE
'CGI/1.1'
HTTP_ACCEPT_ENCODING
'gzip,deflate'
HTTP_CONNECTION
'Keep-Alive'
HTTP_HOST
'pangaea-dev-orc-1.test.dataone.org'
HTTP_USER_AGENT
'Apache-HttpClient/4.3.6 (java 1.5)'
HTTP_VIA
'1.1 localhost (Apache-HttpClient/4.3.6 (cache))'
PATH_INFO
u'/v2/object'
PATH_TRANSLATED
'/var/www/html/v2/object'
QUERY_STRING
''
REMOTE_ADDR
'64.106.40.19'
REMOTE_PORT
'41008'
REQUEST_METHOD
'POST'
REQUEST_SCHEME
'https'
REQUEST_URI
'/mn/v2/object'
SCRIPT_FILENAME
'/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py'
SCRIPT_NAME
u'/mn'
SERVER_ADDR
'160.36.13.167'
SERVER_ADMIN
'email@monicaihli.com'
SERVER_NAME
'pangaea-dev-orc-1.test.dataone.org'
SERVER_PORT
'443'
SERVER_PROTOCOL
'HTTP/1.1'
SERVER_SIGNATURE
'<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n'
SERVER_SOFTWARE
'Apache/2.4.18 (Ubuntu)'
SSL_CLIENT_CERT
'-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n'
SSL_SERVER_CERT
'-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n'
SSL_TLS_SNI
'pangaea-dev-orc-1.test.dataone.org'
apache.version
(2, 4, 18)
mod_wsgi.application_group
''
mod_wsgi.callable_object
'application'
mod_wsgi.daemon_connects
'1'
mod_wsgi.daemon_restarts
'0'
mod_wsgi.daemon_start
'1517867863764818'
mod_wsgi.enable_sendfile
'0'
mod_wsgi.handler_script
''
mod_wsgi.input_chunked
'0'
mod_wsgi.listener_host
''
mod_wsgi.listener_port
'443'
mod_wsgi.process_group
'gmn2'
mod_wsgi.queue_start
'1517867863764535'
mod_wsgi.request_handler
'wsgi-script'
mod_wsgi.request_start
'1517867863764204'
mod_wsgi.script_reloading
'1'
mod_wsgi.script_start
'1517867863764869'
mod_wsgi.version
(4, 3, 0)
wsgi.errors
<mod_wsgi.Log object at 0x7f5403f77588>
wsgi.file_wrapper
''
wsgi.input
<mod_wsgi.Input object at 0x7f5408c8f0f0>
wsgi.multiprocess
True
wsgi.multithread
True
wsgi.run_once
False
wsgi.url_scheme
'https'
wsgi.version
(1, 0)
Settings
Using settings module d1_gmn.settings
Setting
Value
ABSOLUTE_URL_OVERRIDES
{}
ADMINS
(('My Name', 'my_address@my_email.tld'),)
ALLOWED_HOSTS
['localhost', '127.0.0.1']
APPEND_SLASH
True
AUTHENTICATION_BACKENDS
[u'django.contrib.auth.backends.ModelBackend']
AUTH_PASSWORD_VALIDATORS
u'********************'
AUTH_USER_MODEL
u'auth.User'
CACHES
{'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
'TIMEOUT': 3600}}
CACHE_MIDDLEWARE_ALIAS
u'default'
CACHE_MIDDLEWARE_KEY_PREFIX
u'********************'
CACHE_MIDDLEWARE_SECONDS
600
CLIENT_CERT_PATH
'/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem'
CLIENT_CERT_PRIVATE_KEY_PATH
u'********************'
CSRF_COOKIE_AGE
31449600
CSRF_COOKIE_DOMAIN
None
CSRF_COOKIE_HTTPONLY
False
CSRF_COOKIE_NAME
u'csrftoken'
CSRF_COOKIE_PATH
u'/'
CSRF_COOKIE_SECURE
False
CSRF_FAILURE_VIEW
u'django.views.csrf.csrf_failure'
CSRF_HEADER_NAME
u'HTTP_X_CSRFTOKEN'
CSRF_TRUSTED_ORIGINS
[]
CSRF_USE_SESSIONS
False
DATABASES
{'default': {'ATOMIC_REQUESTS': True,
'AUTOCOMMIT': True,
'CONN_MAX_AGE': 0,
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'HOST': '',
'NAME': 'gmn2',
'OPTIONS': {},
'PASSWORD': u'********************',
'PORT': '',
'TEST': {'CHARSET': None,
'COLLATION': None,
'MIRROR': None,
'NAME': None},
'TIME_ZONE': None,
'USER': ''}}
DATABASE_ROUTERS
[]
DATAONE_ROOT
'https://cn-sandbox.test.dataone.org/cn'
DATAONE_TRUSTED_SUBJECTS
set([])
DATA_UPLOAD_MAX_MEMORY_SIZE
2621440
DATA_UPLOAD_MAX_NUMBER_FIELDS
1000
DATETIME_FORMAT
u'N j, Y, P'
DATETIME_INPUT_FORMATS
[u'%Y-%m-%d %H:%M:%S',
u'%Y-%m-%d %H:%M:%S.%f',
u'%Y-%m-%d %H:%M',
u'%Y-%m-%d',
u'%m/%d/%Y %H:%M:%S',
u'%m/%d/%Y %H:%M:%S.%f',
u'%m/%d/%Y %H:%M',
u'%m/%d/%Y',
u'%m/%d/%y %H:%M:%S',
u'%m/%d/%y %H:%M:%S.%f',
u'%m/%d/%y %H:%M',
u'%m/%d/%y']
DATE_FORMAT
u'N j, Y'
DATE_INPUT_FORMATS
[u'%Y-%m-%d',
u'%m/%d/%Y',
u'%m/%d/%y',
u'%b %d %Y',
u'%b %d, %Y',
u'%d %b %Y',
u'%d %b, %Y',
u'%B %d %Y',
u'%B %d, %Y',
u'%d %B %Y',
u'%d %B, %Y']
DEBUG
True
DEBUG_ALLOW_INTEGRATION_TESTS
False
DEBUG_ECHO_REQUEST
False
DEBUG_GMN
True
DEBUG_PROFILE_SQL
False
DEBUG_PROPAGATE_EXCEPTIONS
False
DEBUG_PYCHARM
False
DEBUG_PYCHARM_BIN
'pycharm.sh'
DECIMAL_SEPARATOR
u'.'
DEFAULT_CHARSET
u'utf-8'
DEFAULT_CONTENT_TYPE
u'text/html'
DEFAULT_EXCEPTION_REPORTER_FILTER
u'django.views.debug.SafeExceptionReporterFilter'
DEFAULT_FILE_STORAGE
u'django.core.files.storage.FileSystemStorage'
DEFAULT_FROM_EMAIL
u'webmaster@localhost'
DEFAULT_INDEX_TABLESPACE
u''
DEFAULT_TABLESPACE
u''
DISALLOWED_USER_AGENTS
[]
EMAIL_BACKEND
u'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST
u'localhost'
EMAIL_HOST_PASSWORD
u'********************'
EMAIL_HOST_USER
u''
EMAIL_PORT
25
EMAIL_SSL_CERTFILE
None
EMAIL_SSL_KEYFILE
u'********************'
EMAIL_SUBJECT_PREFIX
u'[Django] '
EMAIL_TIMEOUT
None
EMAIL_USE_LOCALTIME
False
EMAIL_USE_SSL
False
EMAIL_USE_TLS
False
FILE_CHARSET
u'utf-8'
FILE_UPLOAD_DIRECTORY_PERMISSIONS
None
FILE_UPLOAD_HANDLERS
[u'django.core.files.uploadhandler.MemoryFileUploadHandler',
u'django.core.files.uploadhandler.TemporaryFileUploadHandler']
FILE_UPLOAD_MAX_MEMORY_SIZE
2621440
FILE_UPLOAD_PERMISSIONS
None
FILE_UPLOAD_TEMP_DIR
None
FIRST_DAY_OF_WEEK
0
FIXTURE_DIRS
[]
FORCE_SCRIPT_NAME
None
FORMAT_MODULE_PATH
None
FORM_RENDERER
u'django.forms.renderers.DjangoTemplates'
IGNORABLE_404_URLS
[]
INSTALLED_APPS
['django.contrib.staticfiles',
'd1_gmn.app',
'd1_gmn.app.startup.GMNStartupChecks']
INTERNAL_IPS
[]
LANGUAGES
[(u'af', u'Afrikaans'),
(u'ar', u'Arabic'),
(u'ast', u'Asturian'),
(u'az', u'Azerbaijani'),
(u'bg', u'Bulgarian'),
(u'be', u'Belarusian'),
(u'bn', u'Bengali'),
(u'br', u'Breton'),
(u'bs', u'Bosnian'),
(u'ca', u'Catalan'),
(u'cs', u'Czech'),
(u'cy', u'Welsh'),
(u'da', u'Danish'),
(u'de', u'German'),
(u'dsb', u'Lower Sorbian'),
(u'el', u'Greek'),
(u'en', u'English'),
(u'en-au', u'Australian English'),
(u'en-gb', u'British English'),
(u'eo', u'Esperanto'),
(u'es', u'Spanish'),
(u'es-ar', u'Argentinian Spanish'),
(u'es-co', u'Colombian Spanish'),
(u'es-mx', u'Mexican Spanish'),
(u'es-ni', u'Nicaraguan Spanish'),
(u'es-ve', u'Venezuelan Spanish'),
(u'et', u'Estonian'),
(u'eu', u'Basque'),
(u'fa', u'Persian'),
(u'fi', u'Finnish'),
(u'fr', u'French'),
(u'fy', u'Frisian'),
(u'ga', u'Irish'),
(u'gd', u'Scottish Gaelic'),
(u'gl', u'Galician'),
(u'he', u'Hebrew'),
(u'hi', u'Hindi'),
(u'hr', u'Croatian'),
(u'hsb', u'Upper Sorbian'),
(u'hu', u'Hungarian'),
(u'ia', u'Interlingua'),
(u'id', u'Indonesian'),
(u'io', u'Ido'),
(u'is', u'Icelandic'),
(u'it', u'Italian'),
(u'ja', u'Japanese'),
(u'ka', u'Georgian'),
(u'kk', u'Kazakh'),
(u'km', u'Khmer'),
(u'kn', u'Kannada'),
(u'ko', u'Korean'),
(u'lb', u'Luxembourgish'),
(u'lt', u'Lithuanian'),
(u'lv', u'Latvian'),
(u'mk', u'Macedonian'),
(u'ml', u'Malayalam'),
(u'mn', u'Mongolian'),
(u'mr', u'Marathi'),
(u'my', u'Burmese'),
(u'nb', u'Norwegian Bokm\xe5l'),
(u'ne', u'Nepali'),
(u'nl', u'Dutch'),
(u'nn', u'Norwegian Nynorsk'),
(u'os', u'Ossetic'),
(u'pa', u'Punjabi'),
(u'pl', u'Polish'),
(u'pt', u'Portuguese'),
(u'pt-br', u'Brazilian Portuguese'),
(u'ro', u'Romanian'),
(u'ru', u'Russian'),
(u'sk', u'Slovak'),
(u'sl', u'Slovenian'),
(u'sq', u'Albanian'),
(u'sr', u'Serbian'),
(u'sr-latn', u'Serbian Latin'),
(u'sv', u'Swedish'),
(u'sw', u'Swahili'),
(u'ta', u'Tamil'),
(u'te', u'Telugu'),
(u'th', u'Thai'),
(u'tr', u'Turkish'),
(u'tt', u'Tatar'),
(u'udm', u'Udmurt'),
(u'uk', u'Ukrainian'),
(u'ur', u'Urdu'),
(u'vi', u'Vietnamese'),
(u'zh-hans', u'Simplified Chinese'),
(u'zh-hant', u'Traditional Chinese')]
LANGUAGES_BIDI
[u'he', u'ar', u'fa', u'ur']
LANGUAGE_CODE
'en-us'
LANGUAGE_COOKIE_AGE
None
LANGUAGE_COOKIE_DOMAIN
None
LANGUAGE_COOKIE_NAME
u'django_language'
LANGUAGE_COOKIE_PATH
u'/'
LOCALE_PATHS
[]
LOGGING
{'disable_existing_loggers': True,
'formatters': {'simple': {'format': '%(levelname)s %(message)s'},
'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S',
'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}},
'handlers': {'file': {'class': 'logging.FileHandler',
'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log',
'formatter': 'verbose',
'level': 'DEBUG'},
'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}},
'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True},
'django': {'handlers': ['file'],
'level': 'DEBUG',
'propagate': False},
'django.db.backends': {'handlers': ['null'],
'level': 'WARNING',
'propagate': False}},
'version': 1}
LOGGING_CONFIG
u'logging.config.dictConfig'
LOGIN_REDIRECT_URL
u'/accounts/profile/'
LOGIN_URL
u'/accounts/login/'
LOGOUT_REDIRECT_URL
None
LOG_LEVEL
'DEBUG'
LOG_PATH
'/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log'
MANAGERS
[]
MAX_XML_DOCUMENT_SIZE
10485760
MEDIA_ROOT
u''
MEDIA_URL
''
MESSAGE_STORAGE
u'django.contrib.messages.storage.fallback.FallbackStorage'
MIDDLEWARE
None
MIDDLEWARE_CLASSES
('d1_gmn.app.middleware.request_handler.RequestHandler',
'd1_gmn.app.middleware.exception_handler.ExceptionHandler',
'd1_gmn.app.middleware.response_handler.ResponseHandler',
'd1_gmn.app.middleware.profiling_handler.ProfilingHandler',
'd1_gmn.app.middleware.view_handler.ViewHandler')
MIGRATION_MODULES
{}
MONITOR
True
MONTH_DAY_FORMAT
u'F j'
NODE_BASEURL
'https://pangaea-dev-orc-1.test.dataone.org/mn'
NODE_CONTACT_SUBJECT
'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org'
NODE_DESCRIPTION
'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.'
NODE_IDENTIFIER
'urn:node:mnTestPANGAEA'
NODE_NAME
'Pangaea'
NODE_REPLICATE
False
NODE_STATE
'up'
NODE_SUBJECT
'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org'
NODE_SYNCHRONIZE
True
NODE_SYNC_SCHEDULE_HOUR
'*'
NODE_SYNC_SCHEDULE_MINUTE
'42'
NODE_SYNC_SCHEDULE_MONTH
'*'
NODE_SYNC_SCHEDULE_MONTHDAY
'*'
NODE_SYNC_SCHEDULE_SECOND
'0'
NODE_SYNC_SCHEDULE_WEEKDAY
'?'
NODE_SYNC_SCHEDULE_YEAR
'*'
NUMBER_GROUPING
0
NUM_CHUNK_BYTES
1048576
OBJECT_STORE_PATH
'/var/local/dataone/gmn_object_store'
PASSWORD_HASHERS
u'********************'
PASSWORD_RESET_TIMEOUT_DAYS
u'********************'
PREPEND_WWW
False
PROXY_MODE_BASIC_AUTH_ENABLED
False
PROXY_MODE_BASIC_AUTH_PASSWORD
u'********************'
PROXY_MODE_BASIC_AUTH_USERNAME
''
PROXY_MODE_STREAM_TIMEOUT
30
PUBLIC_LOG_RECORDS
True
PUBLIC_OBJECT_LIST
True
REPLICATION_ALLOWEDNODE
()
REPLICATION_ALLOWEDOBJECTFORMAT
()
REPLICATION_ALLOW_ONLY_PUBLIC
False
REPLICATION_MAXOBJECTSIZE
-1
REPLICATION_MAX_ATTEMPTS
24
REPLICATION_SPACEALLOCATED
10737418240
REQUIRE_WHITELIST_FOR_UPDATE
True
ROOT_URLCONF
'd1_gmn.app.urls'
SECRET_KEY
u'********************'
SECURE_BROWSER_XSS_FILTER
False
SECURE_CONTENT_TYPE_NOSNIFF
False
SECURE_HSTS_INCLUDE_SUBDOMAINS
False
SECURE_HSTS_PRELOAD
False
SECURE_HSTS_SECONDS
0
SECURE_PROXY_SSL_HEADER
None
SECURE_REDIRECT_EXEMPT
[]
SECURE_SSL_HOST
None
SECURE_SSL_REDIRECT
False
SERVER_EMAIL
u'root@localhost'
SESSION_CACHE_ALIAS
u'default'
SESSION_COOKIE_AGE
1209600
SESSION_COOKIE_DOMAIN
None
SESSION_COOKIE_HTTPONLY
True
SESSION_COOKIE_NAME
u'sessionid'
SESSION_COOKIE_PATH
u'/'
SESSION_COOKIE_SECURE
True
SESSION_ENGINE
u'django.contrib.sessions.backends.db'
SESSION_EXPIRE_AT_BROWSER_CLOSE
False
SESSION_FILE_PATH
None
SESSION_SAVE_EVERY_REQUEST
False
SESSION_SERIALIZER
u'django.contrib.sessions.serializers.JSONSerializer'
SETTINGS_MODULE
'd1_gmn.settings'
SHORT_DATETIME_FORMAT
u'm/d/Y P'
SHORT_DATE_FORMAT
u'm/d/Y'
SIGNING_BACKEND
u'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS
[]
STAND_ALONE
False
STATICFILES_DIRS
[]
STATICFILES_FINDERS
[u'django.contrib.staticfiles.finders.FileSystemFinder',
u'django.contrib.staticfiles.finders.AppDirectoriesFinder']
STATICFILES_STORAGE
u'django.contrib.staticfiles.storage.StaticFilesStorage'
STATIC_ROOT
None
STATIC_URL
'/static/'
SYSMETA_REFRESH_MAX_ATTEMPTS
24
TEMPLATES
[{'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'],
'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth',
'django.template.context_processors.debug',
'django.template.context_processors.i18n',
'django.template.context_processors.media',
'django.template.context_processors.static',
'django.template.context_processors.tz',
'django.contrib.messages.context_processors.messages'],
'loaders': ['django.template.loaders.filesystem.Loader']}}]
TEST_NON_SERIALIZED_APPS
[]
TEST_RUNNER
u'django.test.runner.DiscoverRunner'
THOUSAND_SEPARATOR
u','
TIME_FORMAT
u'P'
TIME_INPUT_FORMATS
[u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M']
TIME_ZONE
'UTC'
TRUST_CLIENT_AUTHORITATIVEMEMBERNODE
True
TRUST_CLIENT_DATESYSMETADATAMODIFIED
True
TRUST_CLIENT_DATEUPLOADED
True
TRUST_CLIENT_ORIGINMEMBERNODE
True
TRUST_CLIENT_SERIALVERSION
False
TRUST_CLIENT_SUBMITTER
True
USE_ETAGS
False
USE_I18N
False
USE_L10N
False
USE_THOUSAND_SEPARATOR
False
USE_TZ
False
USE_X_FORWARDED_HOST
False
USE_X_FORWARDED_PORT
False
WSGI_APPLICATION
None
X_FRAME_OPTIONS
u'SAMEORIGIN'
YEAR_MONTH_FORMAT
u'F Y'
You're seeing this error because you have DEBUG = True in your
Django settings file. Change that to False, and Django will
display a standard page generated by the handler for this status code.
[for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135743619_path-unicode-ascii-escaped-%3F; FilePart:object = /tmp/mmp.output.2722731137517222158.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.8848006462063453348.tmp (1015 bytes); ]
at org.junit.Assert.fail(Assert.java:91)
at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825)
at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70)
at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820)
at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100)
at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253)
at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153)
at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:34)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103)
at com.sun.proxy.$Proxy0.invoke(Unknown Source)
at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150)
at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69)
500testCreateData_IdentifierEncodingfalseREGRESSION