2015-12-08 2 views
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); 
    } 

То, что я пытаюсь сделать, это организационный вход. Но после проверки подлинности вместо перехода на URL-адрес перенаправления, указанный в OAuthFlowBuilder, он приведет меня на мою домашнюю страницу smartsheet. Если я не установленAuthorizationURL(), я должен выбрать Oraganization Login из параметров. Это работает, но я пытаюсь получить доступ непосредственно к странице входа в систему SSO вместо того, чтобы нажимать кнопку входа в систему, а затем идти дальше.Ошибка перенаправления на определенную страницу после Smartsheet Auth

Я сделал приложение, используя опцию инструментов разработчика smartsheet и упомянул тот же URL-адрес перенаправления. Ничто не работает.

Now redirect url is optional, но если не указать, что мне было предложено исключить IllegalStateException.

Использование Smartsheet-СДК-Java-2.0.0.jar

ответ

0

Поток, который вы пытаетесь достичь невозможно. то есть https://app.smartsheet.com/b/orgsso/ не является допустимым URL-адресом авторизации для Smartsheet oAuth.

Вместо этого (как описано в Smartsheet oAuth documentation), вы должны использовать этот URL: https://app.smartsheet.com/b/authorize. Оттуда пользователь может выбрать соответствующую опцию, чтобы указать, как они хотели бы войти.

+0

Он работает с [DEFAULT_AUTHORIZATION_URL] (https://github.com/smartsheet-platform/smartsheet-java-sdk/blob/master/src/main/java/com/smartsheet/api/oauth/OAuthFlowBuilder.java). Но OAuthFlowBuilder дает метод setter «setAuthorizationURL()», чтобы установить его на другой URL-адрес. Таким образом, по умолчанию он работает, но пользователь должен нажать кнопку «Войти в систему», чтобы перейти на страницу входа в систему единого входа. Я хочу вариант, когда вы можете как-то напрямую перенаправить пользователя на страницу единого входа, учитывая, что письмо предоставляется приложением. – akgaur

+0

Также после прочтения документации я не смог найти способ перечислить соавторы листа. Есть метод, который я пропустил. – akgaur

+0

Да, я понимаю, что вы пытаетесь добиться - но это невозможно. В настоящее время существует только одно допустимое значение для URL-адреса авторизации (https://app.smartsheet.com/b/authorize) - то есть, используя SDK, вы должны использовать DEFAULT_AUTHORIZATION_URL - вы не можете установить его на какое-либо другое значение. (Не знаю, почему OAuthFlowBuilder предоставляет метод setter «setAuthorizationURL()» - это может быть непреднамеренно включено в SDK.) –

Смежные вопросы