Java源码示例:org.springframework.security.oauth2.client.token.grant.implicit.ImplicitResourceDetails

示例1
@Bean
public OAuth2ProtectedResourceDetails implicitResourceDetails() {
    ImplicitResourceDetails resourceDetails = new ImplicitResourceDetails();

    //@formatter:off
    resourceDetails.setId("oauth2server");
    resourceDetails.setTokenName("oauth_token");
    resourceDetails.setClientId("clientapp");
    resourceDetails.setUserAuthorizationUri("http://localhost:8080/oauth/authorize");
    resourceDetails.setScope(Arrays.asList("read_profile"));
    resourceDetails.setPreEstablishedRedirectUri("http://localhost:9000/callback");
    resourceDetails.setUseCurrentUri(false);
    resourceDetails.setClientAuthenticationScheme(AuthenticationScheme.query);
    //@formatter:on

    return resourceDetails;
}
 
示例2
private Map<String, String> getParametersForTokenRequest(
        ImplicitResourceDetails resource, AccessTokenRequest request) {

    Map<String, String> queryString = new HashMap<String, String>();
    queryString.put("response_type", "token");
    queryString.put("client_id", resource.getClientId());

    if (resource.isScoped()) {
        queryString.put("scope",
                resource.getScope().stream().reduce((a, b) -> a + " " + b)
                        .get());
    }

    String redirectUri = resource.getRedirectUri(request);
    if (redirectUri == null) {
        throw new IllegalStateException(
                "No redirect URI available in request");
    }
    queryString.put("redirect_uri", redirectUri);

    return queryString;

}
 
示例3
/**
 * 该方式没有实验成功,设置为 Deprecated!
 * <p>
 * 演示 grant_type=implicit 时,获取资源的方法
 *
 * @param client_id
 * @param client_secret     取决于 AuthorizationServer 设置,如果 client 设置了secret,则此项参数为必需,否则可以没有
 * @param authorization_uri
 * @param access_token_uri
 * @param scope
 * @return
 */
@Deprecated
public OAuth2RestOperations implicitResourceRestTemplate(String client_id, String client_secret, String authorization_uri, String access_token_uri, String... scope) {

    // 防止 url 写错
    if (!authorization_uri.contains("authorize"))
        throw new RuntimeException("uri is wrong :  authorization_uri" + authorization_uri);

    ImplicitResourceDetails details = new ImplicitResourceDetails();
    details.setId("2");
    details.setClientId(client_id);
    if (client_secret != null && !client_secret.isEmpty())
        details.setClientSecret(client_secret);
    details.setAccessTokenUri(authorization_uri);
    details.setClientAuthenticationScheme(AuthenticationScheme.header);
    details.setUseCurrentUri(true);
    details.setScope(Arrays.asList(scope));
    // return restTemplate;
    return new OAuth2RestTemplate(details, oAuth2ClientContext);
}
 
示例4
@Bean
@ConditionalOnProperty("openapipetstore.security.petstoreAuth.client-id")
@ConfigurationProperties("openapipetstore.security.petstoreAuth")
public ImplicitResourceDetails petstoreAuthResourceDetails() {
  ImplicitResourceDetails details = new ImplicitResourceDetails();
  details.setUserAuthorizationUri("http://petstore.swagger.io/api/oauth/dialog");
  return details;
}
 
示例5
@Bean
@ConditionalOnProperty("openapipetstore.security.petstoreAuth.client-id")
@ConfigurationProperties("openapipetstore.security.petstoreAuth")
public ImplicitResourceDetails petstoreAuthResourceDetails() {
  ImplicitResourceDetails details = new ImplicitResourceDetails();
  details.setUserAuthorizationUri("http://petstore.swagger.io/api/oauth/dialog");
  return details;
}
 
示例6
@Override
public OAuth2AccessToken obtainAccessToken(
        OAuth2ProtectedResourceDetails details, AccessTokenRequest request)
        throws RuntimeException {

    ImplicitResourceDetails resource = (ImplicitResourceDetails) details;

    Map<String, String> requestParameters = getParametersForTokenRequest(
            resource, request);

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

    throw redirectException;
}
 
示例7
@Override
public boolean supportsResource(OAuth2ProtectedResourceDetails resource) {
    return resource instanceof ImplicitResourceDetails
            && "implicit".equals(resource.getGrantType());
}