Forum Discussion

ReadyAPIComm's avatar
ReadyAPIComm
New Contributor
6 months ago

Groovy script to retrive oAUth2.0 token

Can i automate retrieving oAuth2.0 token  with Authorization Code grant? and dynamically create an auth profile and assign that to a test cases? if you have sample code, please share

  • PrathapR's avatar
    PrathapR
    Frequent Contributor

    Hey,

    I use oAuth2.0 token (Which is set and used at Auth Manager at Project level ), I added below code to Test Suite setup script, it automatically pulls new token every time it runs.

    // Import the required classes
    import com.eviware.soapui.impl.rest.actions.oauth.OltuOAuth2ClientFacade;
    import com.eviware.soapui.support.editor.inspectors.auth.TokenType;
    import com.eviware.soapui.model.support.ModelSupport;
    
    // Get a project
    def project = ModelSupport.getModelItemProject(context.getModelItem());
    
    // Get the needed authorization profile
    def authProfile = project.getAuthRepository().getEntry("YourOAUTHProfileName");
    
    //Create a facade object
    def tokenType = TokenType.ACCESS;
    def oAuthFacade = new OltuOAuth2ClientFacade(tokenType);
    
    // Request an access token in headless mode and assign it to the authorization profile we got earlier
    oAuthFacade.requestAccessToken(authProfile, true, true);
    
    // Access token retrieval may take time, so we need to pause the execution for 3 seconds to finish it. You may increase this value if needed.
    sleep(3000);
    
    // Posts a new token to the script log
    log.info("Set new token OAuth2.0: " + authProfile.getAccessToken());