------------------------------------------------------------------------------- Test set: org.dataone.integration.it.apiTests.MNAuthorizationV2IT ------------------------------------------------------------------------------- Tests run: 19, Failures: 17, Errors: 0, Skipped: 0, Time elapsed: 859.996 sec <<< FAILURE! testIsAuthorized_NullPolicy_testPerson_is_RightsHolder(org.dataone.integration.it.apiTests.MNAuthorizationV2IT) Time elapsed: 71.429 sec <<< FAILURE! java.lang.AssertionError: org.dataone.client.exception.ClientSideException: Unable to create test object!/Access allowed only for subjects with Create/Update/Delete permission. active_subjects="CN=testPerson,DC=dataone,DC=org (primary), CN=testGroup,DC=dataone,DC=org, CN=testEQPerson1,DC=dataone,DC=org, CN=testEQPerson2,DC=dataone,DC=org, authenticatedUser, CN=someLegacyAcct,DC=somewhere,DC=org, verifiedUser, CN=testEQPerson3,DC=dataone,DC=org, public" [for host https://pangaea-dev-orc-1.test.dataone.org/mn ] 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.testImplementations.AbstractAuthorizationTestImplementations.testIsAuthorized_NullPolicy_testPerson_is_RightsHolder(AbstractAuthorizationTestImplementations.java:346) 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) testIsAuthorized_NullPolicy_testGroup_is_RightsHolder(org.dataone.integration.it.apiTests.MNAuthorizationV2IT) Time elapsed: 47.427 sec <<< FAILURE! java.lang.AssertionError: org.dataone.client.exception.ClientSideException: Unable to create test object!/Access allowed only for subjects with Create/Update/Delete permission. active_subjects="CN=testPerson,DC=dataone,DC=org (primary), CN=testGroup,DC=dataone,DC=org, CN=testEQPerson1,DC=dataone,DC=org, CN=testEQPerson2,DC=dataone,DC=org, authenticatedUser, CN=someLegacyAcct,DC=somewhere,DC=org, verifiedUser, CN=testEQPerson3,DC=dataone,DC=org, public" [for host https://pangaea-dev-orc-1.test.dataone.org/mn ] 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.testImplementations.AbstractAuthorizationTestImplementations.testIsAuthorized_NullPolicy_testGroup_is_RightsHolder(AbstractAuthorizationTestImplementations.java:495) 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) testIsAuthorized_AccessPolicy_is_Public_can_Read(org.dataone.integration.it.apiTests.MNAuthorizationV2IT) Time elapsed: 87.704 sec <<< FAILURE! 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/meta/TierTesting:pangaea-dev-orc-1:Public_READ.15 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: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Public_READ.15 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 22:13:36 +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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Public_READ.15'> /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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Public_READ.15'> 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 get_meta at 0x7f53fb9d92a8> callback_args (u'TierTesting:pangaea-dev-orc-1:Public_READ.15',) callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Public_READ.15'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.get_meta, args=(u'TierTesting:pangaea-dev-orc-1:Public_READ.15',), kwargs={}, url_name=get_meta, 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Public_READ.15'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args (u'TierTesting:pangaea-dev-orc-1:Public_READ.15',) view_func <function get_meta at 0x7f53fb9d92a8> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Public_READ.15'> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Public_READ.15'> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Public_READ.15'> Environment: Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Public_READ.15 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/meta/TierTesting:pangaea-dev-orc-1:Public_READ.15 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 No POST data FILES No FILES data COOKIES No cookie data META Variable Value 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/meta/TierTesting:pangaea-dev-orc-1:Public_READ.15' PATH_TRANSLATED '/var/www/html/v2/meta/TierTesting:pangaea-dev-orc-1:Public_READ.15' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '42959' REQUEST_METHOD 'GET' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Public_READ.15' 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 '1517868816556392' 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 '1517868816556074' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517868816555682' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517868816556474' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fad2a6f0> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f5401145b30> 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 GET https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Public_READ.15 ] 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.testImplementations.AbstractAuthorizationTestImplementations.testIsAuthorized_AccessPolicy_is_Public_can_Read(AbstractAuthorizationTestImplementations.java:628) 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) testIsAuthorized_AccessPolicy_is_AuthenticatedUser_can_Read(org.dataone.integration.it.apiTests.MNAuthorizationV2IT) Time elapsed: 85.561 sec <<< FAILURE! 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/meta/TierTesting:pangaea-dev-orc-1:Authenticated_READ.15 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: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Authenticated_READ.15 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 22:15:02 +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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Authenticated_READ.15'> /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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Authenticated_READ.15'> 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 get_meta at 0x7f53fb9d92a8> callback_args (u'TierTesting:pangaea-dev-orc-1:Authenticated_READ.15',) callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Authenticated_READ.15'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.get_meta, args=(u'TierTesting:pangaea-dev-orc-1:Authenticated_READ.15',), kwargs={}, url_name=get_meta, 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Authenticated_READ.15'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args (u'TierTesting:pangaea-dev-orc-1:Authenticated_READ.15',) view_func <function get_meta at 0x7f53fb9d92a8> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Authenticated_READ.15'> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Authenticated_READ.15'> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Authenticated_READ.15'> Environment: Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Authenticated_READ.15 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/meta/TierTesting:pangaea-dev-orc-1:Authenticated_READ.15 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 No POST data FILES No FILES data COOKIES No cookie data META Variable Value 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/meta/TierTesting:pangaea-dev-orc-1:Authenticated_READ.15' PATH_TRANSLATED '/var/www/html/v2/meta/TierTesting:pangaea-dev-orc-1:Authenticated_READ.15' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '43112' REQUEST_METHOD 'GET' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Authenticated_READ.15' 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 '1517868902113743' 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 '1517868902113494' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517868902113114' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517868902113802' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fad2a6f0> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f5401145b30> 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 GET https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Authenticated_READ.15 ] 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.testImplementations.AbstractAuthorizationTestImplementations.testIsAuthorized_AccessPolicy_is_AuthenticatedUser_can_Read(AbstractAuthorizationTestImplementations.java:765) 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) testIsAuthorized_AccessPolicy_is_VerifiedUser_can_Read(org.dataone.integration.it.apiTests.MNAuthorizationV2IT) Time elapsed: 88.227 sec <<< FAILURE! 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/meta/TierTesting:pangaea-dev-orc-1:Verified_READ.15 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: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Verified_READ.15 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 22:16:30 +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 0x7f5408329410>> request <D1WSGIRequest: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Verified_READ.15'> /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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Verified_READ.15'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /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 get_meta at 0x7f53fb9d92a8> callback_args (u'TierTesting:pangaea-dev-orc-1:Verified_READ.15',) callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Verified_READ.15'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.get_meta, args=(u'TierTesting:pangaea-dev-orc-1:Verified_READ.15',), kwargs={}, url_name=get_meta, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Verified_READ.15'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args (u'TierTesting:pangaea-dev-orc-1:Verified_READ.15',) view_func <function get_meta at 0x7f53fb9d92a8> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Verified_READ.15'> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Verified_READ.15'> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Verified_READ.15'> Environment: Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Verified_READ.15 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/meta/TierTesting:pangaea-dev-orc-1:Verified_READ.15 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 No POST data FILES No FILES data COOKIES No cookie data META Variable Value 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/meta/TierTesting:pangaea-dev-orc-1:Verified_READ.15' PATH_TRANSLATED '/var/www/html/v2/meta/TierTesting:pangaea-dev-orc-1:Verified_READ.15' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '43261' REQUEST_METHOD 'GET' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Verified_READ.15' 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 '1517868990331675' 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 '1517868990331427' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517868990331028' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517868990331760' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fad54c90> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53faf723f0> 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 GET https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:Verified_READ.15 ] 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.testImplementations.AbstractAuthorizationTestImplementations.testIsAuthorized_AccessPolicy_is_VerifiedUser_can_Read(AbstractAuthorizationTestImplementations.java:914) 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) testIsAuthorized_AccessPolicy_is_testPerson_can_Read(org.dataone.integration.it.apiTests.MNAuthorizationV2IT) Time elapsed: 85.914 sec <<< FAILURE! 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/meta/TierTesting:pangaea-dev-orc-1:testPerson_READ.15 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: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_READ.15 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 22:17:56 +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 0x7f5408329410>> request <D1WSGIRequest: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_READ.15'> /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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_READ.15'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /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 get_meta at 0x7f53fb9d92a8> callback_args (u'TierTesting:pangaea-dev-orc-1:testPerson_READ.15',) callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_READ.15'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.get_meta, args=(u'TierTesting:pangaea-dev-orc-1:testPerson_READ.15',), kwargs={}, url_name=get_meta, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_READ.15'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args (u'TierTesting:pangaea-dev-orc-1:testPerson_READ.15',) view_func <function get_meta at 0x7f53fb9d92a8> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_READ.15'> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_READ.15'> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_READ.15'> Environment: Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_READ.15 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/meta/TierTesting:pangaea-dev-orc-1:testPerson_READ.15 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 No POST data FILES No FILES data COOKIES No cookie data META Variable Value 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/meta/TierTesting:pangaea-dev-orc-1:testPerson_READ.15' PATH_TRANSLATED '/var/www/html/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_READ.15' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '43428' REQUEST_METHOD 'GET' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_READ.15' 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 '1517869076262552' 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 '1517869076262256' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517869076261816' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517869076262643' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fad54c90> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f5400067870> 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 GET https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_READ.15 ] 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.testImplementations.AbstractAuthorizationTestImplementations.testIsAuthorized_AccessPolicy_is_testPerson_can_Read(AbstractAuthorizationTestImplementations.java:1057) 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) testIsAuthorized_AccessPolicy_is_testPerson_can_Write(org.dataone.integration.it.apiTests.MNAuthorizationV2IT) Time elapsed: 87.49 sec <<< FAILURE! 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/meta/TierTesting:pangaea-dev-orc-1:testPerson_WRITE.15 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: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_WRITE.15 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 22:19:23 +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 0x7f5408329410>> request <D1WSGIRequest: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_WRITE.15'> /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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_WRITE.15'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /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 get_meta at 0x7f53fb9d92a8> callback_args (u'TierTesting:pangaea-dev-orc-1:testPerson_WRITE.15',) callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_WRITE.15'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.get_meta, args=(u'TierTesting:pangaea-dev-orc-1:testPerson_WRITE.15',), kwargs={}, url_name=get_meta, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_WRITE.15'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args (u'TierTesting:pangaea-dev-orc-1:testPerson_WRITE.15',) view_func <function get_meta at 0x7f53fb9d92a8> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_WRITE.15'> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_WRITE.15'> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_WRITE.15'> Environment: Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_WRITE.15 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/meta/TierTesting:pangaea-dev-orc-1:testPerson_WRITE.15 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 No POST data FILES No FILES data COOKIES No cookie data META Variable Value 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/meta/TierTesting:pangaea-dev-orc-1:testPerson_WRITE.15' PATH_TRANSLATED '/var/www/html/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_WRITE.15' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '43565' REQUEST_METHOD 'GET' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_WRITE.15' 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 '1517869163749915' 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 '1517869163749593' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517869163749219' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517869163749976' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fad54c90> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f5400067870> 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 GET https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_WRITE.15 ] 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.testImplementations.AbstractAuthorizationTestImplementations.testIsAuthorized_AccessPolicy_is_testPerson_can_Write(AbstractAuthorizationTestImplementations.java:1197) 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) testIsAuthorized_AccessPolicy_is_testPerson_can_ChangePerm(org.dataone.integration.it.apiTests.MNAuthorizationV2IT) Time elapsed: 5.147 sec <<< FAILURE! java.lang.AssertionError: org.dataone.integration.TestIterationEndingException: the AccessRule of the returned object has either multiple subjects or multiple permissions [for host https://mn-sandbox-ucsb-1.test.dataone.org/knb/d1/mn ] 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.testImplementations.AbstractAuthorizationTestImplementations.testIsAuthorized_AccessPolicy_is_testPerson_can_ChangePerm(AbstractAuthorizationTestImplementations.java:1343) 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) testIsAuthorized_AccessPolicy_is_testPerson_can_ChangePerm(org.dataone.integration.it.apiTests.MNAuthorizationV2IT) Time elapsed: 5.147 sec <<< FAILURE! java.lang.AssertionError: org.dataone.integration.TestIterationEndingException: the AccessRule of the returned object has either multiple subjects or multiple permissions [for host https://mn-sandbox-ucsb-2.test.dataone.org/knb/d1/mn ] 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.testImplementations.AbstractAuthorizationTestImplementations.testIsAuthorized_AccessPolicy_is_testPerson_can_ChangePerm(AbstractAuthorizationTestImplementations.java:1343) 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) testIsAuthorized_AccessPolicy_is_testPerson_can_ChangePerm(org.dataone.integration.it.apiTests.MNAuthorizationV2IT) Time elapsed: 5.148 sec <<< FAILURE! 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/meta/TierTesting:pangaea-dev-orc-1:testPerson_CHANGE.15 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: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_CHANGE.15 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 22:19:28 +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 0x7f5408329410>> request <D1WSGIRequest: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_CHANGE.15'> /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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_CHANGE.15'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /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 get_meta at 0x7f53fb9d92a8> callback_args (u'TierTesting:pangaea-dev-orc-1:testPerson_CHANGE.15',) callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_CHANGE.15'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.get_meta, args=(u'TierTesting:pangaea-dev-orc-1:testPerson_CHANGE.15',), kwargs={}, url_name=get_meta, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_CHANGE.15'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args (u'TierTesting:pangaea-dev-orc-1:testPerson_CHANGE.15',) view_func <function get_meta at 0x7f53fb9d92a8> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_CHANGE.15'> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_CHANGE.15'> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_CHANGE.15'> Environment: Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_CHANGE.15 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/meta/TierTesting:pangaea-dev-orc-1:testPerson_CHANGE.15 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 No POST data FILES No FILES data COOKIES No cookie data META Variable Value 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/meta/TierTesting:pangaea-dev-orc-1:testPerson_CHANGE.15' PATH_TRANSLATED '/var/www/html/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_CHANGE.15' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '43587' REQUEST_METHOD 'GET' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_CHANGE.15' 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 '1517869168900009' 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 '1517869168899710' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517869168899364' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517869168900071' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fad54c90> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f5400067870> 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 GET https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testPerson_CHANGE.15 ] 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.testImplementations.AbstractAuthorizationTestImplementations.testIsAuthorized_AccessPolicy_is_testPerson_can_ChangePerm(AbstractAuthorizationTestImplementations.java:1338) 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) testIsAuthorized_AccessPolicy_is_testGroup_can_Read(org.dataone.integration.it.apiTests.MNAuthorizationV2IT) Time elapsed: 84.179 sec <<< FAILURE! 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/meta/TierTesting:pangaea-dev-orc-1:testGroup_READ.15 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: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_READ.15 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 22:20:53 +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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_READ.15'> /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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_READ.15'> 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 get_meta at 0x7f53fb9d92a8> callback_args (u'TierTesting:pangaea-dev-orc-1:testGroup_READ.15',) callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_READ.15'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.get_meta, args=(u'TierTesting:pangaea-dev-orc-1:testGroup_READ.15',), kwargs={}, url_name=get_meta, 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_READ.15'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args (u'TierTesting:pangaea-dev-orc-1:testGroup_READ.15',) view_func <function get_meta at 0x7f53fb9d92a8> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_READ.15'> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_READ.15'> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_READ.15'> Environment: Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_READ.15 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/meta/TierTesting:pangaea-dev-orc-1:testGroup_READ.15 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 No POST data FILES No FILES data COOKIES No cookie data META Variable Value 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/meta/TierTesting:pangaea-dev-orc-1:testGroup_READ.15' PATH_TRANSLATED '/var/www/html/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_READ.15' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '43744' REQUEST_METHOD 'GET' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_READ.15' 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 '1517869253077220' 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 '1517869253076936' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517869253076541' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517869253077291' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fad2a6f0> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f5401145b30> 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 GET https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_READ.15 ] 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.testImplementations.AbstractAuthorizationTestImplementations.testIsAuthorized_AccessPolicy_is_testGroup_can_Read(AbstractAuthorizationTestImplementations.java:1485) 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) testIsAuthorized_AccessPolicy_is_testGroup_can_Write(org.dataone.integration.it.apiTests.MNAuthorizationV2IT) Time elapsed: 86.674 sec <<< FAILURE! 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/meta/TierTesting:pangaea-dev-orc-1:testGroup_WRITE.15 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: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_WRITE.15 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 22:22:19 +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 0x7f5408329410>> request <D1WSGIRequest: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_WRITE.15'> /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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_WRITE.15'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /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 get_meta at 0x7f53fb9d92a8> callback_args (u'TierTesting:pangaea-dev-orc-1:testGroup_WRITE.15',) callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_WRITE.15'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.get_meta, args=(u'TierTesting:pangaea-dev-orc-1:testGroup_WRITE.15',), kwargs={}, url_name=get_meta, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_WRITE.15'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args (u'TierTesting:pangaea-dev-orc-1:testGroup_WRITE.15',) view_func <function get_meta at 0x7f53fb9d92a8> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_WRITE.15'> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_WRITE.15'> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_WRITE.15'> Environment: Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_WRITE.15 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/meta/TierTesting:pangaea-dev-orc-1:testGroup_WRITE.15 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 No POST data FILES No FILES data COOKIES No cookie data META Variable Value 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/meta/TierTesting:pangaea-dev-orc-1:testGroup_WRITE.15' PATH_TRANSLATED '/var/www/html/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_WRITE.15' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '43881' REQUEST_METHOD 'GET' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_WRITE.15' 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 '1517869339750035' 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 '1517869339749793' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517869339749361' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517869339750103' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fad54c90> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f5400067870> 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 GET https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_WRITE.15 ] 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.testImplementations.AbstractAuthorizationTestImplementations.testIsAuthorized_AccessPolicy_is_testGroup_can_Write(AbstractAuthorizationTestImplementations.java:1632) 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) testIsAuthorized_AccessPolicy_is_testGroup_can_ChangePerm(org.dataone.integration.it.apiTests.MNAuthorizationV2IT) Time elapsed: 4.828 sec <<< FAILURE! java.lang.AssertionError: org.dataone.integration.TestIterationEndingException: the AccessRule of the returned object has either multiple subjects or multiple permissions [for host https://mn-sandbox-ucsb-1.test.dataone.org/knb/d1/mn ] 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.testImplementations.AbstractAuthorizationTestImplementations.testIsAuthorized_AccessPolicy_is_testGroup_can_ChangePerm(AbstractAuthorizationTestImplementations.java:1784) 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) testIsAuthorized_AccessPolicy_is_testGroup_can_ChangePerm(org.dataone.integration.it.apiTests.MNAuthorizationV2IT) Time elapsed: 4.828 sec <<< FAILURE! java.lang.AssertionError: org.dataone.integration.TestIterationEndingException: the AccessRule of the returned object has either multiple subjects or multiple permissions [for host https://mn-sandbox-ucsb-2.test.dataone.org/knb/d1/mn ] 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.testImplementations.AbstractAuthorizationTestImplementations.testIsAuthorized_AccessPolicy_is_testGroup_can_ChangePerm(AbstractAuthorizationTestImplementations.java:1784) 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) testIsAuthorized_AccessPolicy_is_testGroup_can_ChangePerm(org.dataone.integration.it.apiTests.MNAuthorizationV2IT) Time elapsed: 4.829 sec <<< FAILURE! 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/meta/TierTesting:pangaea-dev-orc-1:testGroup_CHANGE.15 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: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_CHANGE.15 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 22:22:24 +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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_CHANGE.15'> /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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_CHANGE.15'> 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 get_meta at 0x7f53fb9d92a8> callback_args (u'TierTesting:pangaea-dev-orc-1:testGroup_CHANGE.15',) callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_CHANGE.15'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.get_meta, args=(u'TierTesting:pangaea-dev-orc-1:testGroup_CHANGE.15',), kwargs={}, url_name=get_meta, 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_CHANGE.15'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args (u'TierTesting:pangaea-dev-orc-1:testGroup_CHANGE.15',) view_func <function get_meta at 0x7f53fb9d92a8> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_CHANGE.15'> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_CHANGE.15'> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_CHANGE.15'> Environment: Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_CHANGE.15 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/meta/TierTesting:pangaea-dev-orc-1:testGroup_CHANGE.15 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 No POST data FILES No FILES data COOKIES No cookie data META Variable Value 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/meta/TierTesting:pangaea-dev-orc-1:testGroup_CHANGE.15' PATH_TRANSLATED '/var/www/html/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_CHANGE.15' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '43898' REQUEST_METHOD 'GET' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_CHANGE.15' 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 '1517869344581393' 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 '1517869344581101' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517869344580757' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517869344581456' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fad2a6f0> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f5401145b30> 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 GET https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:testGroup_CHANGE.15 ] 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.testImplementations.AbstractAuthorizationTestImplementations.testIsAuthorized_AccessPolicy_is_testGroup_can_ChangePerm(AbstractAuthorizationTestImplementations.java:1778) 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) testIsAuthorized_AccessPolicy_is_legacyAccount_can_Write(org.dataone.integration.it.apiTests.MNAuthorizationV2IT) Time elapsed: 86.825 sec <<< FAILURE! 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/meta/TierTesting:pangaea-dev-orc-1:legacyAcct_WRITE.15 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: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:legacyAcct_WRITE.15 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 22:23:51 +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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:legacyAcct_WRITE.15'> /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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:legacyAcct_WRITE.15'> 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 get_meta at 0x7f53fb9d92a8> callback_args (u'TierTesting:pangaea-dev-orc-1:legacyAcct_WRITE.15',) callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:legacyAcct_WRITE.15'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.get_meta, args=(u'TierTesting:pangaea-dev-orc-1:legacyAcct_WRITE.15',), kwargs={}, url_name=get_meta, 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:legacyAcct_WRITE.15'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args (u'TierTesting:pangaea-dev-orc-1:legacyAcct_WRITE.15',) view_func <function get_meta at 0x7f53fb9d92a8> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:legacyAcct_WRITE.15'> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:legacyAcct_WRITE.15'> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:legacyAcct_WRITE.15'> Environment: Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:legacyAcct_WRITE.15 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/meta/TierTesting:pangaea-dev-orc-1:legacyAcct_WRITE.15 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 No POST data FILES No FILES data COOKIES No cookie data META Variable Value 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/meta/TierTesting:pangaea-dev-orc-1:legacyAcct_WRITE.15' PATH_TRANSLATED '/var/www/html/v2/meta/TierTesting:pangaea-dev-orc-1:legacyAcct_WRITE.15' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '44084' REQUEST_METHOD 'GET' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:legacyAcct_WRITE.15' 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 '1517869431404113' 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 '1517869431403803' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517869431403293' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517869431404187' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fad2a6f0> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f5401145b30> 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 GET https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:legacyAcct_WRITE.15 ] 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.testImplementations.AbstractAuthorizationTestImplementations.testIsAuthorized_AccessPolicy_is_legacyAccount_can_Write(AbstractAuthorizationTestImplementations.java:1923) 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) testIsAuthorized_ComplicatedAccessPolicy(org.dataone.integration.it.apiTests.MNAuthorizationV2IT) Time elapsed: 19.222 sec <<< FAILURE! 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/meta/TierTesting:pangaea-dev-orc-1:ComplicatedPolicy.15 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: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:ComplicatedPolicy.15 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 22:24:10 +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 0x7f5408329410>> request <D1WSGIRequest: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:ComplicatedPolicy.15'> /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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:ComplicatedPolicy.15'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /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 get_meta at 0x7f53fb9d92a8> callback_args (u'TierTesting:pangaea-dev-orc-1:ComplicatedPolicy.15',) callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:ComplicatedPolicy.15'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.get_meta, args=(u'TierTesting:pangaea-dev-orc-1:ComplicatedPolicy.15',), kwargs={}, url_name=get_meta, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:ComplicatedPolicy.15'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args (u'TierTesting:pangaea-dev-orc-1:ComplicatedPolicy.15',) view_func <function get_meta at 0x7f53fb9d92a8> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:ComplicatedPolicy.15'> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:ComplicatedPolicy.15'> 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: GET '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:ComplicatedPolicy.15'> Environment: Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:ComplicatedPolicy.15 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/meta/TierTesting:pangaea-dev-orc-1:ComplicatedPolicy.15 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 No POST data FILES No FILES data COOKIES No cookie data META Variable Value 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/meta/TierTesting:pangaea-dev-orc-1:ComplicatedPolicy.15' PATH_TRANSLATED '/var/www/html/v2/meta/TierTesting:pangaea-dev-orc-1:ComplicatedPolicy.15' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '44119' REQUEST_METHOD 'GET' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/meta/TierTesting:pangaea-dev-orc-1:ComplicatedPolicy.15' 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 '1517869450623199' 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 '1517869450622949' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517869450622596' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517869450623249' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fad54c90> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fb05f6f0> 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 GET https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/TierTesting:pangaea-dev-orc-1:ComplicatedPolicy.15 ] 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.testImplementations.AbstractAuthorizationTestImplementations.testIsAuthorized_ComplicatedAccessPolicy(AbstractAuthorizationTestImplementations.java:2059) 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)