簡體   English   中英

OREST2的Java Rest jersey重定向不起作用

[英]java rest jersey redirection for oauth2 not working

我正在編寫帶有jersey 2的java rest模塊,第一步是從外部Oauth2服務器獲取用戶憑據。 當我嘗試將用戶重定向到身份驗證服務時,我看到已正確生成了url,但仍保留了該位置。 這是我正在執行的代碼:

  @GET
  public String inOk(
          @DefaultValue("") @QueryParam("code") String inoauthcode)
  {
      String oauthserv = "https://xxx";
      String oauthclientid = "xxx";
      String oauthsecret = "xxxx";
      String oauthredirect = "http://myapp/url";
      String oauthurl = "xxxx"; 
      String redurl = "http";
      String authurl = "http";

        if (inoauthcode.equals("")) {
            redurl = oauthserv + "?response_type=code&client_id=" + oauthclientid + "&redirect_uri=" + oauthredirect;
            URI uri = UriBuilder.fromUri(redurl).build();
            Response.temporaryRedirect(uri);
      } 
        authurl = oauthurl + inoauthcode +  "&redirect_uri=" + oauthredirect + "&client_id=" + oauthclientid + "&client_secret=" + oauthsecret;
     ...REST OF CODE ...
  }

如果我將生成的url寫到屏幕上,則可以正常運行,但臨時重定向命令沒有執行任何操作(顯然)。

我究竟做錯了什么? 我忘記了什么嗎? 該代碼幾乎直接從該論壇中提出的類似問題中復制而來,但是我無法使其正常工作。

這次很容易,但是花了很長時間才弄清楚。

函數的輸出不應為字符串,而應為響應:

 public String inOk(

重定向命令應如下所示:

return Response.seeOther(uri).build();

現在就可以了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM