Author: mmichelson Date: Mon Jan 12 10:46:52 2015 New Revision: 6254 URL: http://svnview.digium.com/svn/testsuite?view=rev&rev=6254 Log: Test that outbound registrations cannot result in an infinite auth loop.
This test ensures that if we attempt to send a registration with authentication credentials and then receive another 401 response, we will consider our authentication attempt to have failed and not immediately try to send another registration request. The test works by setting auth rejection errors as permanent errors. Therefore, sending any other requests after the reception of the 401 is a failure. Review: https://reviewboard.asterisk.org/r/4274 Added: asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/ asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/configs/ asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/configs/ast1/ asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/configs/ast1/pjsip.conf (with props) asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/sipp/ asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/sipp/uas-reg-401.xml (with props) asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/test-config.yaml (with props) Modified: asterisk/trunk/tests/channels/pjsip/registration/outbound/tests.yaml Added: asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/configs/ast1/pjsip.conf URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/configs/ast1/pjsip.conf?view=auto&rev=6254 ============================================================================== --- asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/configs/ast1/pjsip.conf (added) +++ asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/configs/ast1/pjsip.conf Mon Jan 12 10:46:52 2015 @@ -1,0 +1,20 @@ +[global] +type = global +debug = yes + +[trans] +type = transport +protocol = udp +bind = 127.0.0.1:5060 + +[outreg] +type = registration +server_uri = sip:[email protected]:5061 +client_uri = sip:[email protected] +outbound_auth = regauth + +[regauth] +type = auth +auth_type = userpass +username = this_doesnt +password = matter_anyway Propchange: asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/configs/ast1/pjsip.conf ------------------------------------------------------------------------------ svn:eol-style = native Propchange: asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/configs/ast1/pjsip.conf ------------------------------------------------------------------------------ svn:keywords = 'Author Date Id Revision' Propchange: asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/configs/ast1/pjsip.conf ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/sipp/uas-reg-401.xml URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/sipp/uas-reg-401.xml?view=auto&rev=6254 ============================================================================== --- asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/sipp/uas-reg-401.xml (added) +++ asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/sipp/uas-reg-401.xml Mon Jan 12 10:46:52 2015 @@ -1,0 +1,45 @@ +<?xml version="1.0" encoding="ISO-8859-1" ?> +<!DOCTYPE scenario SYSTEM "sipp.dtd"> + +<scenario name="Register rejecter"> + <recv request="REGISTER" crlf="true"> + </recv> + + <send> + <![CDATA[ + + SIP/2.0 401 Unauthorized + [last_Via:] + [last_From:] + [last_To:];tag=[pid]SIPpTag01[call_number] + [last_Call-ID:] + [last_CSeq:] + Contact: <sip:[local_ip]:[local_port];transport=[transport]> + WWW-Authenticate: Digest realm="asterisk", nonce="47ebe028cda119c35d4877b383027d28da013815" + Content-Length: 0 + + ]]> + </send> + + <recv request="REGISTER" crlf="true"> + </recv> + + <send> + <![CDATA[ + + SIP/2.0 401 Unauthorized + [last_Via:] + [last_From:] + [last_To:];tag=[pid]SIPpTag01[call_number] + [last_Call-ID:] + [last_CSeq:] + Contact: <sip:[local_ip]:[local_port];transport=[transport]> + WWW-Authenticate: Digest realm="asterisk", nonce="47ebe028cda3284789cda42390815234bcedf" + Content-Length: 0 + + ]]> + </send> + + <!-- Keep the scenario going for a while to ensure that no further messages are sent --> + <timewait milliseconds="3000" /> +</scenario> Propchange: asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/sipp/uas-reg-401.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/sipp/uas-reg-401.xml ------------------------------------------------------------------------------ svn:keywords = 'Author Date Id Revision' Propchange: asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/sipp/uas-reg-401.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Added: asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/test-config.yaml URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/test-config.yaml?view=auto&rev=6254 ============================================================================== --- asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/test-config.yaml (added) +++ asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/test-config.yaml Mon Jan 12 10:46:52 2015 @@ -1,0 +1,53 @@ +testinfo: + summary: 'Ensure that Asterisk will not get caught in an infinite loop attempting registration authentication' + description: | + " * Asterisk will attempt to register with a server (a SIPp scenario). + * Asterisk will be challenged for authentication + * Asterisk will send the REGISTER a second time with auth credentials. + * Asterisk will again be challenged for authentication + * At this point, Asterisk should consider the registration to be rejected and not + re-attempt registration. + + This tests Asterisk's ability to stop sending registrations after receiving consecutive + 401 responses." + +test-modules: + test-object: + config-section: sipp-config + typename: 'sipp.SIPpTestCase' + modules: + - + typename: 'ami.AMIEventModule' + config-section: ami-config + +sipp-config: + test-iterations: + - + scenarios: + - { 'key-args': { 'scenario': 'uas-reg-401.xml', '-p': '5061'} } + +ami-config: + - + type: 'headermatch' + conditions: + match: + Event: 'Registry' + ChannelType: 'PJSIP' + requirements: + match: + Username: 'sip:[email protected]' + Domain: 'sip:[email protected]:5061' + Status: 'Rejected' + count: '1' + +properties: + minversion: '13.2.0' + dependencies: + - python: 'starpy' + - sipp: + version: 'v3.1' + - asterisk: 'res_pjsip' + - asterisk: 'res_pjsip_outbound_authenticator_digest' + - asterisk: 'res_pjsip_outbound_registration' + tags: + - pjsip Propchange: asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/test-config.yaml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/test-config.yaml ------------------------------------------------------------------------------ svn:keywords = 'Author Date Id Revision' Propchange: asterisk/trunk/tests/channels/pjsip/registration/outbound/auth_loop/test-config.yaml ------------------------------------------------------------------------------ svn:mime-type = text/plain Modified: asterisk/trunk/tests/channels/pjsip/registration/outbound/tests.yaml URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/channels/pjsip/registration/outbound/tests.yaml?view=diff&rev=6254&r1=6253&r2=6254 ============================================================================== --- asterisk/trunk/tests/channels/pjsip/registration/outbound/tests.yaml (original) +++ asterisk/trunk/tests/channels/pjsip/registration/outbound/tests.yaml Mon Jan 12 10:46:52 2015 @@ -2,3 +2,4 @@ tests: - test: 'forbidden_retry' - dir: 'unregister' + - test: 'auth_loop' -- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- svn-commits mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/svn-commits
