Авторизация Xpages В Браузере Без Пары Логин\пароль

Тема в разделе "Lotus - Xpages", создана пользователем cybergeene, 27 дек 2011.

  1. cybergeene

    cybergeene Member

    Регистрация:
    7 мар 2008
    Сообщения:
    21
    Симпатии:
    0
    Доброго времени суток, друзья!
    Есть ли возможность авторизации через вэб без ввода пары логин\пароль, если запущен локальный клиент лотуса?
    Заранее спасибо!
     
  2. cybergeene

    cybergeene Member

    Регистрация:
    7 мар 2008
    Сообщения:
    21
    Симпатии:
    0
  3. rinsk

    rinsk Lotus team
    Lotus team

    Регистрация:
    12 ноя 2009
    Сообщения:
    797
    Симпатии:
    78
    ну как - получилось?
    У нас вылезает 'Your session has expired'. Вместо xPage заюзали агент с

    Print {Set-Cookie: LtpaToken=}+token+{; domain=.doman.org; path=/}+Chr(13)
    Print "Location: "+param("url")+Chr(13)
    Print "Content-type: text/html"+Chr(13)+Chr(10)
     
  4. rinsk

    rinsk Lotus team
    Lotus team

    Регистрация:
    12 ноя 2009
    Сообщения:
    797
    Симпатии:
    78
    Все получилось и работает! надо было что бы оба документа LtpaToken были одинаковыми - что и писалось по ссылке выше.
     
  5. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    @rinsk, я не смог грамотно настроить. Окажите помощь, пож-та?
     
  6. rinsk

    rinsk Lotus team
    Lotus team

    Регистрация:
    12 ноя 2009
    Сообщения:
    797
    Симпатии:
    78
    Много времени прошло - проект не взлетел(
    Помню что проблема в основном были с интернет сайт доками. Нужно разбираться.
    Вообще говоря есть другой путь - это формирование самостоятельно токена из секрет ключа. Недавно тут было - поискать по слову CAS...
    Вот оно точно работает ...
    Вот - http://codeby.net/forum/threads/56756/#post-258449
     
  7. rinsk

    rinsk Lotus team
    Lotus team

    Регистрация:
    12 ноя 2009
    Сообщения:
    797
    Симпатии:
    78
    Вот эту часть закатывается в LS2J или в Java агент и подсовывается лотусовое имя пользователя и Ltpa secret . Способов - куча.
    Код (Java):

    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    import java.util.Arrays;
    import java.util.GregorianCalendar;
    import javax.xml.bind.DatatypeConverter;
     
    public class ltpagen {
    public String generateLtpaToken(String userName,int duration,String ltpaSecret) {
             
        MessageDigest sha1 = null;
     
        GregorianCalendar creationDate=new GregorianCalendar();
        GregorianCalendar expiringDate=new GregorianCalendar();
       
        expiringDate.add(GregorianCalendar.MINUTE, duration);
         
        try {
          sha1 = MessageDigest.getInstance( "SHA-1" );
        } catch (NoSuchAlgorithmException e) {
          e.printStackTrace(System.err);
        }
     
        byte[] secretDecoded=DatatypeConverter.parseBase64Binary(ltpaSecret);
        byte[] tokenBase=("\000\001\002\003"+getHexRep(creationDate)+getHexRep(expiringDate)+userName).getBytes();
        byte[] digest=sha1.digest(concatBytes(tokenBase, secretDecoded));
       
        return DatatypeConverter.printBase64Binary(concatBytes(tokenBase, digest));
         
      }
     
      public static byte[] concatBytes(byte[] arr1, byte[] arr2) {
        byte[] result=Arrays.copyOf(arr1, arr1.length+arr2.length);
        System.arraycopy(arr2, 0, result, arr1.length, arr2.length);
        return result;
      }
       
      public static String getHexRep(GregorianCalendar date) {
        int timeVal=(int)(date.getTimeInMillis()/1000);
        String hex=Integer.toHexString(timeVal).toUpperCase();
       
        if(hex.length()>=8) {
          return hex;
        } else {
         return ("00000000"+hex).substring(-8);
          //return String.format("%0"+(8-hex.length())+"d", 0)+hex;
        }
      }
      }
    /////////////////// end token generator
     
     
     
  8. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    @rinsk, спасибо.
    Я так понимаю этот код нужен для агента перенаправления, верно?
     
  9. rinsk

    rinsk Lotus team
    Lotus team

    Регистрация:
    12 ноя 2009
    Сообщения:
    797
    Симпатии:
    78
    да. т.е. лотус клиент формирует урл в котором вставляется нужное имя пользователя, и куда редиректить.
    агент парсит все, дергает есл надо секр ключ, формирует куку и делает редирект. т.е. 1 агент на сервере.
    там же если вдруг REMOTE_USER нужный - просто редирект.
     
Загрузка...
Похожие Темы - Авторизация Xpages Браузере
  1. Runinterface
    Ответов:
    0
    Просмотров:
    16
  2. seoman2
    Ответов:
    52
    Просмотров:
    2.527
  3. aameno2
    Ответов:
    6
    Просмотров:
    1.299
  4. shpion8888
    Ответов:
    0
    Просмотров:
    969
  5. XiNoID
    Ответов:
    6
    Просмотров:
    1.596

Поделиться этой страницей