Class AuthManager

    • Constructor Detail

      • AuthManager

        public AuthManager()
        Default Constructor.
    • Method Detail

      • set

        public void set​(int index,
                        String url,
                        String user,
                        String pass,
                        String domain,
                        String realm,
                        AuthManager.Mechanism mechanism)
        Update an authentication record.
        Parameters:
        index - index at which position the record should be set
        url - url for which the authentication record should be used
        user - name of the user
        pass - password of the user
        domain - domain of the user
        realm - realm of the site
        mechanism - authentication AuthManager.Mechanism to use
      • getColumnCount

        public int getColumnCount()
      • getColumnName

        public String getColumnName​(int column)
      • getColumnClass

        public Class<?> getColumnClass​(int column)
      • getAuthObjectAt

        public Authorization getAuthObjectAt​(int row)
      • isEditable

        public boolean isEditable()
      • get

        public Authorization get​(int i)
        Return the record at index i
        Parameters:
        i - index of the record to get
        Returns:
        authorization record at index i
      • getAuthHeaderForURL

        public String getAuthHeaderForURL​(URL url)
      • hasAuthForURL

        public boolean hasAuthForURL​(URL url)
        Tests whether an authorization record is available for a given URL
        Parameters:
        url - URL for which an authorization record should be available
        Returns:
        true if an authorization is setup for url, false otherwise
      • getSubjectForUrl

        public Subject getSubjectForUrl​(URL url)
        Get a Subject for a given URL, if available
        Parameters:
        url - URL for which the subject was asked
        Returns:
        Subject if Auth Scheme uses Subject and an authorization is setup for url, null otherwise
      • addConfigElement

        public void addConfigElement​(ConfigElement config)
        Add a configuration element to this one. This allows config elements to combine and give a "layered" effect. For example, HTTPConfigElements have properties for domain, path, method, and parameters. If element A has everything filled in, but null for domain, and element B is added, which has only domain filled in, then after adding B to A, A will have the domain from B. If A already had a domain, then the correct behavior is for A to ignore the addition of element B.
        Specified by:
        addConfigElement in interface ConfigElement
        Overrides:
        addConfigElement in class ConfigTestElement
        Parameters:
        config - the element to be added to this ConfigElement
      • addAuth

        public void addAuth​(Authorization newAuthorization)
        Add newAuthorization if it does not already exist
        Parameters:
        newAuthorization - authorization to be added
      • addAuth

        public void addAuth()
      • expectsModification

        public boolean expectsModification()
        If your config element expects to be modified in the process of a test run, and you want those modifications to carry over from sample to sample (as in a cookie manager - you want to save all cookies that get set throughout the test), then return true for this method. Your config element will not be cloned for each sample. If your config elements are more static in nature, return false. If in doubt, return false.
        Specified by:
        expectsModification in interface ConfigElement
        Overrides:
        expectsModification in class ConfigTestElement
        Returns:
        true if the element expects to be modified over the course of a test run
      • save

        public void save​(String authFile)
                  throws IOException
        Save the authentication data to a file.
        Parameters:
        authFile - path of the file to save the authentication data to
        Throws:
        IOException - when writing to the file fails
      • addFile

        public void addFile​(String authFile)
                     throws IOException
        Add authentication data from a file.
        Parameters:
        authFile - path to the file to read the authentication data from
        Throws:
        IOException - when reading the data fails
      • remove

        public void remove​(int index)
        Remove an authentication record.
        Parameters:
        index - index of the authentication record to remove
      • getClearEachIteration

        public boolean getClearEachIteration()
        Returns:
        true if kerberos auth must be cleared on each mail loop iteration
      • setClearEachIteration

        public void setClearEachIteration​(boolean clear)
      • getAuthCount

        public int getAuthCount()
        Return the number of records.
        Returns:
        the number of records
      • setupCredentials

        public void setupCredentials​(HttpClient client,
                                     URL url,
                                     CredentialsProvider credentialsProvider,
                                     String localHost)
        Configure credentials and auth scheme on client if an authorization is available for url
        Parameters:
        client - HttpClient
        url - URL to test
        credentialsProvider - CredentialsProvider
        localHost - host running JMeter
      • testStarted

        public void testStarted()

        Called just before the start of the test from the main engine thread. This is before the test elements are cloned. Note that not all the test variables will have been set up at this point.

        N.B. testStarted() and testEnded() are called from different threads.

        Specified by:
        testStarted in interface TestStateListener
        See Also:
        StandardJMeterEngine.run()
      • testEnded

        public void testEnded()

        Called once for all threads after the end of a test. This will use the same element instances as at the start of the test.

        N.B. testStarted() and testEnded() are called from different threads.

        Specified by:
        testEnded in interface TestStateListener
        See Also:
        StandardJMeterEngine.stopTest()
      • testStarted

        public void testStarted​(String host)

        Called just before the start of the test from the main engine thread. This is before the test elements are cloned. Note that not all the test variables will have been set up at this point.

        N.B. testStarted() and testEnded() are called from different threads.

        Specified by:
        testStarted in interface TestStateListener
        Parameters:
        host - name of host
        See Also:
        StandardJMeterEngine.run()
      • testEnded

        public void testEnded​(String host)

        Called once for all threads after the end of a test. This will use the same element instances as at the start of the test.

        N.B. testStarted() and testEnded() are called from different threads.

        Specified by:
        testEnded in interface TestStateListener
        Parameters:
        host - name of host
        See Also:
        StandardJMeterEngine.stopTest()
      • testIterationStart

        public void testIterationStart​(LoopIterationEvent event)
        Each time through a Thread Group's test script, an iteration event is fired for each thread. This will be after the test elements have been cloned, so in general the instance will not be the same as the ones the start/end methods call.
        Specified by:
        testIterationStart in interface TestIterationListener
        Parameters:
        event - the iteration event