Example usage for org.springframework.security.oauth2.client.resource UserRedirectRequiredException setStateToPreserve

List of usage examples for org.springframework.security.oauth2.client.resource UserRedirectRequiredException setStateToPreserve

Introduction

In this page you can find the example usage for org.springframework.security.oauth2.client.resource UserRedirectRequiredException setStateToPreserve.

Prototype

public void setStateToPreserve(Object stateToPreserve) 

Source Link

Document

The state that needs to be preserved and set up in the security context when the user returns.

Usage

From source file:com.zhm.config.MyAuthorizationCodeAccessTokenProvider.java

private UserRedirectRequiredException getRedirectForAuthorization(AuthorizationCodeResourceDetails resource,
        AccessTokenRequest request) {/* w  ww  .  j a  va  2s.c  om*/

    // we don't have an authorization code yet. So first get that.
    TreeMap<String, String> requestParameters = new TreeMap<String, String>();
    requestParameters.put("response_type", "code"); // oauth2 spec, section 3
    requestParameters.put("client_id", resource.getClientId());
    // Client secret is not required in the initial authorization request

    String redirectUri = resource.getRedirectUri(request);
    if (redirectUri != null) {
        requestParameters.put("redirect_uri", redirectUri);
    }

    if (resource.isScoped()) {

        StringBuilder builder = new StringBuilder();
        List<String> scope = resource.getScope();

        if (scope != null) {
            Iterator<String> scopeIt = scope.iterator();
            while (scopeIt.hasNext()) {
                builder.append(scopeIt.next());
                if (scopeIt.hasNext()) {
                    builder.append(' ');
                }
            }
        }

        requestParameters.put("scope", builder.toString());
    }

    UserRedirectRequiredException redirectException = new UserRedirectRequiredException(
            resource.getUserAuthorizationUri(), requestParameters);

    String stateKey = stateKeyGenerator.generateKey(resource);
    redirectException.setStateKey(stateKey);
    request.setStateKey(stateKey);
    redirectException.setStateToPreserve(redirectUri);
    request.setPreservedState(redirectUri);

    return redirectException;

}

From source file:com.emergya.spring.security.oauth.google.GoogleAuthorizationCodeAccessTokenProvider.java

private UserRedirectRequiredException getRedirectForAuthorization(GoogleAuthCodeResourceDetails resource,
        AccessTokenRequest request) {/*from   ww  w.  j  a  va 2  s.  com*/

    // we don't have an authorization code yet. So first get that.
    TreeMap<String, String> requestParameters = new TreeMap<>();
    requestParameters.put("response_type", "code"); // oauth2 spec, section 3
    requestParameters.put("client_id", resource.getClientId());
    // Client secret is not required in the initial authorization request

    String redirectUri = resource.getRedirectUri(request);
    if (redirectUri != null) {
        requestParameters.put("redirect_uri", redirectUri);
    }

    if (resource.isScoped()) {

        StringBuilder builder = new StringBuilder();
        List<String> scope = resource.getScope();

        if (scope != null) {
            Iterator<String> scopeIt = scope.iterator();
            while (scopeIt.hasNext()) {
                builder.append(scopeIt.next());
                if (scopeIt.hasNext()) {
                    builder.append(' ');
                }
            }
        }

        requestParameters.put("scope", builder.toString());
    }

    requestParameters.put("approval_prompt", resource.getApprovalPrompt());

    if (StringUtils.isEmpty(resource.getLoginHint())) {
        requestParameters.put("login_hint", resource.getLoginHint());
    }

    requestParameters.put("access_type", "online");

    UserRedirectRequiredException redirectException = new UserRedirectRequiredException(
            resource.getUserAuthorizationUri(), requestParameters);

    String stateKey = stateKeyGenerator.generateKey(resource);
    redirectException.setStateKey(stateKey);
    request.setStateKey(stateKey);
    redirectException.setStateToPreserve(redirectUri);
    request.setPreservedState(redirectUri);

    return redirectException;

}