Alfresco: синхронизация пользователей с Zimbra

Продолжаем интеграцию, начатую в топике Alfresco: авторизация пользователей в Zimbra LDAP + SSL.

Есть сервер с Alfresco 3.4d и сервер с Zimbra 7. Синхронизация пользователей через LDAP Zimbrы происходит во время запуска Alfresco а также ежедневно в полночь (настройка Alfreso по-умолчанию, см. документацию).

При синхронизации создаются/обновляются учетные записи на сервере Alfresco с заполненными именем, фамилией, почтовым адресом.

Логин имеет вид почтового адреса пользователя, но без @domain.com. с таким-же именем создается домашняя директория пользователя.

При удалении пользователя в Zimbra он будет удален в Alfresco, но домашнюю директорию придется удалять вручную, т.к. там могут остаться файлы пользователя.

Группы синхронизируются со списками рассылки Zimbra.

Для синхронизации нам понадобится пароль от LDAP сервера Zimbra. Можно использовать административный пароль, а можно и создать отдельного пользователя. Чтобы поменять административный пароль на OpenLDAP Zimbrы (его просто забыть, т.к. после установки он нигде не используется пользователем):

( Читать дальше )

Alfresco: включение https в Tomcat

Для того, чтобы использовать https для начала сгенерируем самоподписанный сертификат. Например на 3 года. Моя alfresco установлена в /opt/alfresco.:

/opt/alfresco/java/bin/keytool -genkey -alias tomcat -keyalg RSA -validity 1095 -keystore /путь/к/keystore


Если уже есть существующий keystore (например, вы настраивали авторизацию по топику Alfresco: авторизация пользователей в Zimbra LDAP + SSL), в качестве keystore нужно указать существующий. Если нет, то создать новый.

В /opt/alfresco/tomcat/conf правим server.xml по аналогии:



    <Connector port="8080" URIEncoding="UTF-8" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="443" />

    <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
               scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" keystoreFile="/путь/к/keystore" keystorePass="пароль" />



Стоит отметить, что alfresco так же будет работать и на порту 8080 и соответствующий коннектор отключать не нужно, нужно просто заблокировать доступ брандмауэром.

К сожалению, пока есть проблемы с Flash загрузчиком файлов при работе в некоторых браузерах через https:

bugs.adobe.com/jira/browse/FP-4830

Здесь описание как отключить Flash загрузчик:

forums.alfresco.com/en/viewtopic.php?f=47&t=37270

Alfresco: авторизация пользователей в Zimbra LDAP + SSL

Есть сервер с Alfresco 3.4d и сервер с Zimbra 7. Настроим авторизацию пользователей в LDAP Zimbra. Будем использовать SSL шифрование для LDAP. Есть одна трудность — по-умолчанию, LDAP Zimbrы работает на 389 порту и поддерживает конечно TLS, но Alfresco с ним нормально не работает. Для того, чтобы LDAP Zimbrы работал также на 636 порту с поддержкой SSL нужно подправить конфигурацию.

На сервере Zimbra заходим в консоль:

( Читать дальше )

Alfresco: русификация

Я использую Alfresco версии 3.4d, скачиваем русификацию отсюда:

forge.alfresco.com/projects/alf-russian/

Распаковываем как написано в инструкции.

Правим /путь-к-alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/web-client-config.xml.

Можно отключить выбор языка:

<language-select>false</language-select>


Добавляем в самое начало списка Русский, остальные можно закомментировать:


   <config evaluator="string-compare" condition="Languages">
      <!-- the list of available language files -->
      <languages>
         <language locale="ru_RU">Русский</language>
         <!--<language locale="en_US">English</language>
         <language locale="de_DE">German</language>
         <language locale="es_ES">Spanish</language>
         <language locale="fr_FR">French</language>
         <language locale="it_IT">Italian</language>-->
      </languages>
   </config>



Добавляем в /opt/alfresco/tomcat/bin/catalina.sh:

( Читать дальше )

Установка SSL сертификатов в Java

При попытке установить https соединение с помощью клиента, написанного на Java видим вот такое примерно сообщение (если сертификат сервера самоподписанный):

unable to find valid certification path to requested target


Воспользуемся небольшим кодом на Java, который значительно облегчит установку сертификата. Скачиваем InstallCert.java отсюда.

Т.к. я использую красноглазный-gentoo-подобный дистрибутив, управление различными версиями JRE и JDK в нем осуществляется приятной утилитой java-config.

Просмотрим, что у нас установлено:

java-config --list-available-vms

The following VMs are available for generation-2:
1)	Sun JDK 1.6.0.24 [sun-jdk-1.6]
*)	Sun JRE 1.6.0.24 [sun-jre-bin-1.6]


Нам понадобится именно JDK, т.к. .java файл необходимо откомпилировать в .class. Устанавливаем по-умолчанию для пользователя JDK. В этом мощь данной утилиты — версий JRE и JDK может быть установлено сколько угодно, каждому пользователю можно просто назначить используемую версию JRE или JDK:

java-config --set-user-vm=sun-jdk-1.6


Now using sun-jdk-1.6 as your user JVM


Проверяем, доступна ли теперь утилита для компиляции javac:

java-config --javac


/opt/sun-jdk-1.6.0.24/bin/javac


Компилируем .java файл в .class:

javac ./InstallCert.java


Запускаем, указав в качестве аргумента имя хоста и порт или ip адрес:

java InstallCert xx.xx.xx.xx:443


...

Added certificate to keystore /opt/sun-jre-bin-1.6.0.24/lib/security/cacerts using alias 'xx.xx.xx.xx-1'


Вуаля.

OpenLDAP и Java

Некоторое время назад на Mtaalamu было опубликовано несколько топиков о сервере OpenDS — Java-реализации службы каталогов, аналогичной OpenLDAP. Как специалист по Java, не мог не заинтересоваться этим продуктом. Через некоторое время стало понятно, что это один из проектов, из-за которых разорилась фирма Sun: ничего принципиально нового по сравнению с имеющимися реализациями там не содержалось, а места на жестком диске и оперативной памяти OpenDS занимает больше своих собратьев. Не случайно Oracle не взяла его «на борт», спасая Java. Однако изучение продукта не прошло без пользы: в ходе его изучения хорошо освоил технологию LDAP, стал использовать ее в своих проектах. Но как же стыковка с Java?

( Читать дальше )
  • +4
  • 16 апреля 2011, 19:55
  • yababay
  • 3

Джеймс Гослинг о контроллерах для роботов

Джейс Гослинг в ходе своей первой недели работы в Google участвовал в состязаниях роботов в качестве наставника.

Моя первая неделя работы в Google напоминала скачку на дикой лошади. Самой большой встряской стал Конкурс роботов Силиконовой долины, организованный робототехнической лигой FIRST. Он проходил в университете Сан-Хосе с четверга по субботу. Я был одним из наставников команды из Вудсайдской школы. Моя младшая дочь учится там, но она не достаточно взрослая для того, чтобы быть зачисленной в команду робототехников, хотя участвовала в Первой лиге.

Я убежал с работы на несколько часов в пятницу, чтобы быть с детьми. На соревнованиях сделал несколько фотографий и видеоклипов выступления команды в трех раундах. Выступили так хорошо, что оказались в числе победителей. Теперь собираются на национальный чемпионат в Сент-Луисе. Одной из сильных сторон их робота была производительность в автономных заездах. Каждый тур в начинается с периода, когда робот должен передвигаться автономно, лишь затем контролируется студентами удаленно. В каждом из трех раундов, которые я видел, автономный показатель нашей команды был просто фантастическим.

Несколько лет назад группа из Sun (под руководством Эрика Арсено, которому отдельное спасибо) работала совместно с командой из FIRST и WPI над портированием Squawk VM (виртуальная машина, используемая в SunSPOT) на Compact RIO от National Instruments. Это промышленные контроллеры, используемые для автоматизации в лиге FIRST. Раньше программирование этого контроллера был чудовищно трудным, поэтому мало кто из студентов разбирался в этом. Теперь, в связи с переводом кода на Java, и включением его поддержки в среду NetBeans (даже с точками останова при отладке на реальном роботе, здорово, правда?), контроллеры RIO становится действительно легко программируемыми, и, следовательно, способны на гораздо более сложные алгоритмы.

Было приятно смотреть, как дети проектируют, изготавливают и программируют своих роботов. Вряд ли им необходима моя помощь в написании ПО. Оно и так великолепно.

Перевод с английского мой (на основе автоматического от Google), извините, если что-то не верно.
  • +8
  • 04 апреля 2011, 13:42
  • yababay
  • 6

Джеймс Гослинг трудоустраивается в Google

Создатель языка Java написал в своем блоге:

«После множества зигзагов и заминок, случившихся в моей карьере за последние годы, я решил работать в Google. Одна из самых сложных вещей в жизни — делать выбор. Мне жаль отказываться от множества других интересных возможностей, но очень интересно познакомится с новым механизмом. Еще не знаю, над чем буду работать. Надеюсь, будет всего понемногу».

  • +13
  • 28 марта 2011, 18:43
  • yababay
  • 4

Обновлен сайт среды разработки Java-приложений 3f-lab

Много лет я пишу программы в собственноручно сформированной среде разработки — 3f-lab. Она пригодна для создания практически любых приложений, основанных на Java-синтаксисе, вплоть до программ для мобильных телефонов и ОС Android. Для кодинга в 3f-lab не нужно ничего, кроме консоли и JDK (Java Developer Kit). На Mtaalamu уже было несколько материалов, на эту тему. Сегодня выложена новая версия сайта 3f-lab со следующими изменениями:

* демонстрационный ролик «Как начать программировать на Java за 10 минут» перемещен на первую вкладку;
* удалены описания приемов работы, которые давно уже не используются (например, сборка с помощью Makefile);
* вычитан текст, из него удалены многие несуразности и длинноты;
* изменен дизайн;
* добавлены кнопки для пожертвований ;).

Может показаться, что такой вот любительской поделке нет места в мире, где правят такие монстры, как Eclipse или NetBeans. Тем не менее, скорость разработки в консольном режиме может быть выше, чем под GUI. Кроме того, 3f-lab позволяет писать и отлаживать программы непосредственно на удаленных серверах, где об оконном доступе не может быть и речи. Короче говоря, я ее ни на что не променяю. Если кто-то заинтересуется — с удовольствием подскажу как пользоваться.

Openfire: couldn't discover local host

Довольно глупый баг c openfire об который споткнулся. Вся проблема в неправильно прописанном имени хоста. Он должен быть таким, который резолвится в ip данного сервера.

2011.03.20 13:38:22 Couldn't discover local host
java.net.UnknownHostException: yourhost: yourhost
	at java.net.InetAddress.getLocalHost(InetAddress.java:1353)
	at org.jivesoftware.openfire.filetransfer.proxy.FileTransferProxy.initialize(FileTransferProxy.java:195)
	at org.jivesoftware.openfire.XMPPServer.initModules(XMPPServer.java:597)
	at org.jivesoftware.openfire.XMPPServer.start(XMPPServer.java:485)
	at org.jivesoftware.openfire.XMPPServer.<init>(XMPPServer.java:212)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at java.lang.Class.newInstance0(Class.java:355)
	at java.lang.Class.newInstance(Class.java:30<img class="smile" src="/images/smilies/dirol.gif" />
	at org.jivesoftware.openfire.starter.ServerStarter.start(ServerStarter.java:113)
	at org.jivesoftware.openfire.starter.ServerStarter.main(ServerStarter.java:5<img class="smile" src="/images/smilies/dirol.gif" />


Меняем в /etc/hostname. Чтобы не пришлось перегружаться, выполняем команду:

hostname yourhost.com