如何使用Spring Boot使用OAuth1.0和自定义标头对API进行身份验证

普拉布

我正在OAuth1.0授权过程中,这是Spring引导中的Java代码,

package com.example.demo;

import com.mgiorda.oauth.OAuthConfig;
import com.mgiorda.oauth.OAuthConfigBuilder;
import com.mgiorda.oauth.OAuthSignature;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.*;
import org.springframework.web.client.RestTemplate;
//import com.example.demo.testsign;
import java.util.Collections;


@SpringBootApplication
@ComponentScan(basePackages = {"com.example.demo.controller"})
@Configuration
@EnableAutoConfiguration

public class TestapiApplication {
    public  static String testm() {

        OAuthConfig oauthConfig = new OAuthConfigBuilder("CONSUMER KEY", "CONSUM_SECRET_KEY")
                .setTokenKeys("ACCESS TOKEN", "SECRET TOKEN")
                .build();

        OAuthSignature signature = oauthConfig.buildSignature(com.mgiorda.oauth.HttpMethod.GET, url)
                .addQueryParam("aParam", "aValue")
                .addFormUrlEncodedParam("myParam", "anotherValue")
                .create();
        return signature.getAsHeader();
    }

    public static void main(String[] args) {
        String val = testm();
        //System.out.println(val);
        // request url
        String url = "htpps://khjfskdhf.com";

// create an instance of RestTemplate
        RestTemplate restTemplate = new RestTemplate();

// create headers
        HttpHeaders headers = new HttpHeaders();
// set `Content-Type` and `Accept` headers
        headers.setContentType(MediaType.APPLICATION_JSON);
        headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
// example of custom header

        headers.set(HttpHeaders.AUTHORIZATION,val);
        System.out.println(headers);
// build the request
        HttpEntity request = new HttpEntity(headers);

// make an HTTP GET request with headers
        ResponseEntity<String> response = restTemplate.exchange(
                url,
                HttpMethod.GET,
                request,
                String.class
        );

// check response
        if (response.getStatusCode() == HttpStatus.OK) {
            System.out.println("Request Successful.");
            System.out.println(response.getBody());
        } else {
            System.out.println("Request Failed");
            System.out.println(response.getStatusCode());
        }
    }

}

我已经使用签名方法创建了标头,并将其传递给我的main方法以获得授权。但是我收到404 Not Found错误,这是错误消息,

08:13:17.464 [main] DEBUG org.springframework.web.client.RestTemplate - Response 404 NOT_FOUND
Exception in thread "main" org.springframework.web.client.HttpClientErrorException$NotFound: 404 Not Found: [no body]
    at org.springframework.web.client.HttpClientErrorException.create(HttpClientErrorException.java:113)
    at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:184)
    at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:125)
    at org.springframework.web.client.ResponseErrorHandler.handleError(ResponseErrorHandler.java:63)
    at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:782)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:740)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:674)
    at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:583)
    at com.example.demo.TestapiApplication.main(TestapiApplication.java:61)

谁能让我知道为什么它不适合我。我真的很努力地完成这一工作。有什么建议?

谢谢,Prabha

普拉布

我通过提供URL参数值解决了该问题,并且还为标头创建了自定义唱歌请求方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用自定义身份验证和内存托管进行ASP.NET Web API集成测试

来自分类Dev

如何使用自定义身份验证和内存托管进行ASP.NET Web API集成测试

来自分类Dev

如何使用AWS api网关和Web api实施自定义身份验证(逻辑)

来自分类Dev

如何在ember cli中使用自定义授权者和自定义身份验证器进行ember简单身份验证

来自分类Dev

使用WebAPI中的Jwt Bearer身份验证中间件自定义WWW身份验证质询标头

来自分类Dev

使用Keycloak进行自定义身份验证

来自分类Dev

使用JavaEE对SOAP进行自定义身份验证

来自分类Dev

使用MVC进行自定义身份验证

来自分类Dev

在.NET Core Web API中使用自定义属性进行JWT身份验证

来自分类Dev

使用IdentityServer4对API进行自定义JWT身份验证

来自分类Dev

通过使用AngularJS的自定义登录进行Spring Security身份验证

来自分类Dev

如何正确设置授权以使用 Nativescript[2.5.4] 使用 Wordpress Rest API (Oauth1)?

来自分类Dev

使用BasicHttpBinding和Authorization标头对WCF服务进行身份验证

来自分类Dev

如何使用java config将Spring Security 3.2配置为使用Dao身份验证和自定义身份验证过滤器

来自分类Dev

使用Backfire时如何使用自定义登录凭据对用户进行身份验证?

来自分类Dev

Soap身份验证标头和使用PHP的请求

来自分类Dev

Soap身份验证标头和使用PHP的请求

来自分类Dev

Rails 4 + Rspec:使用REST API的父控制器进行自定义身份验证的DRY测试?

来自分类Dev

Rails 4 + Rspec:使用REST API的父控制器进行自定义身份验证的DRY测试吗?

来自分类Dev

如何使用GraphQL自定义身份验证类?

来自分类Dev

使用 Devise,如何自定义失败的身份验证?

来自分类Dev

如何使用Windows身份验证和自定义角色提供程序设置OWIN

来自分类Dev

如何使用我自己的机制自定义spring-security身份验证过程

来自分类Dev

使用 Microsoft Graph API 添加自定义标头并检索自定义标头

来自分类Dev

使用mod_auth_openidc对自定义Web应用程序进行身份验证

来自分类Dev

使用Azure移动应用程序进行自定义身份验证

来自分类Dev

Azure移动服务:使用Java脚本后端进行自定义身份验证?

来自分类Dev

泽西岛OAuth1 API中的使用者密钥参数在哪里?

来自分类Dev

在 Springfox Swagger 中为 OAuth2 身份验证添加自定义标头

Related 相关文章

  1. 1

    如何使用自定义身份验证和内存托管进行ASP.NET Web API集成测试

  2. 2

    如何使用自定义身份验证和内存托管进行ASP.NET Web API集成测试

  3. 3

    如何使用AWS api网关和Web api实施自定义身份验证(逻辑)

  4. 4

    如何在ember cli中使用自定义授权者和自定义身份验证器进行ember简单身份验证

  5. 5

    使用WebAPI中的Jwt Bearer身份验证中间件自定义WWW身份验证质询标头

  6. 6

    使用Keycloak进行自定义身份验证

  7. 7

    使用JavaEE对SOAP进行自定义身份验证

  8. 8

    使用MVC进行自定义身份验证

  9. 9

    在.NET Core Web API中使用自定义属性进行JWT身份验证

  10. 10

    使用IdentityServer4对API进行自定义JWT身份验证

  11. 11

    通过使用AngularJS的自定义登录进行Spring Security身份验证

  12. 12

    如何正确设置授权以使用 Nativescript[2.5.4] 使用 Wordpress Rest API (Oauth1)?

  13. 13

    使用BasicHttpBinding和Authorization标头对WCF服务进行身份验证

  14. 14

    如何使用java config将Spring Security 3.2配置为使用Dao身份验证和自定义身份验证过滤器

  15. 15

    使用Backfire时如何使用自定义登录凭据对用户进行身份验证?

  16. 16

    Soap身份验证标头和使用PHP的请求

  17. 17

    Soap身份验证标头和使用PHP的请求

  18. 18

    Rails 4 + Rspec:使用REST API的父控制器进行自定义身份验证的DRY测试?

  19. 19

    Rails 4 + Rspec:使用REST API的父控制器进行自定义身份验证的DRY测试吗?

  20. 20

    如何使用GraphQL自定义身份验证类?

  21. 21

    使用 Devise,如何自定义失败的身份验证?

  22. 22

    如何使用Windows身份验证和自定义角色提供程序设置OWIN

  23. 23

    如何使用我自己的机制自定义spring-security身份验证过程

  24. 24

    使用 Microsoft Graph API 添加自定义标头并检索自定义标头

  25. 25

    使用mod_auth_openidc对自定义Web应用程序进行身份验证

  26. 26

    使用Azure移动应用程序进行自定义身份验证

  27. 27

    Azure移动服务:使用Java脚本后端进行自定义身份验证?

  28. 28

    泽西岛OAuth1 API中的使用者密钥参数在哪里?

  29. 29

    在 Springfox Swagger 中为 OAuth2 身份验证添加自定义标头

热门标签

归档