1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

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

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

  1. cybergeene

    cybergeene Member

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

    cybergeene Member

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

    rinsk Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    12 ноя 2009
    Сообщения:
    894
    Симпатии:
    84
    ну как - получилось?
    У нас вылезает '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 Well-Known Member
    Lotus team

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

    savl Well-Known Member
    Lotus team

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

    rinsk Well-Known Member
    Lotus team

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

    rinsk Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    12 ноя 2009
    Сообщения:
    894
    Симпатии:
    84
    Вот эту часть закатывается в LS2J или в Java агент и подсовывается лотусовое имя пользователя и Ltpa secret . Способов - куча.
    Код:
    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 Well-Known Member
    Lotus team

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

    rinsk Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    12 ноя 2009
    Сообщения:
    894
    Симпатии:
    84
    да. т.е. лотус клиент формирует урл в котором вставляется нужное имя пользователя, и куда редиректить.
    агент парсит все, дергает есл надо секр ключ, формирует куку и делает редирект. т.е. 1 агент на сервере.
    там же если вдруг REMOTE_USER нужный - просто редирект.
     
Загрузка...
Похожие Темы - Авторизация Xpages Браузере
  1. Bringherst
    Ответов:
    0
    Просмотров:
    335
  2. Runinterface
    Ответов:
    4
    Просмотров:
    402
  3. seoman2
    Ответов:
    52
    Просмотров:
    3.331
  4. aameno2
    Ответов:
    6
    Просмотров:
    1.419
  5. shpion8888
    Ответов:
    0
    Просмотров:
    1.076

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