0
   @RequestMapping(value = "/smartsheet.htm", method= RequestMethod.GET)
   public void smartSheetAuth(HttpServletRequest req,HttpServletResponse resp,HttpSession session){
       String userEmail = ************;

       StringBuilder authUrl = new StringBuilder();
       authUrl.append("https://app.smartsheet.com/b/orgsso/");
       authUrl.append(gPlusUser.getDomain());
       /*
       authUrl.append("?loginEmail=");
       authUrl.append(userEmail);*/


       oauth = new OAuthFlowBuilder()
               .setAuthorizationURL(authUrl.toString())
               .setClientId(EnvironmentVariables.SMARTSHEET_CLIENT_ID)
               .setClientSecret(EnvironmentVariables.SMARTSHEET_CLIENT_SECRET)
               .setRedirectURL( APPLICATION_BASE_URL + RequestMapping value to be redirected to)
               .build();
       EnumSet<AccessScope> smartsheetAccessScopes = EnumSet.of(AccessScope.READ_SHEETS,AccessScope.SHARE_SHEETS);
       String url = oauth.newAuthorizationURL(smartsheetAccessScopes, "MY_STATE");

       System.out.println("url >>>"+url);
       resp.sendRedirect(url);
   }

我想做的是组织登录。但是,在我通过身份验证而不是转到 OAuthFlowBuilder 中指定的重定向 url 之后,它会将我带到我的 smartsheet 主页。如果我不 setAuthorizationURL() ,我必须从选项中选择组织登录。它有点工作,但我想要实现的是直接进入 SSO 登录页面,而不是单击组织登录选项然后进一步。

我使用 smartsheet 的开发人员工具选项制作了一个应用程序,并在那里提到了相同的重定向 url。似乎没有任何效果。

现在重定向 url 是可选的,但如果不指定 IllegalStateException 会提示我。

使用smartsheet-sdk-java-2.0.0.jar

4

1 回答 1

0

您试图实现的流程是不可能的。即,https://app.smartsheet.com/b/orgsso/不是 Smartsheet oAuth 的有效授权 URL。

相反(如Smartsheet oAuth 文档中所述),您必须使用此 URL https://app.smartsheet.com/b/authorize:. 从那里,用户可以选择适当的选项来指定他们希望如何登录。

于 2015-12-08T19:27:34.487 回答