forum.bitel.ru
http://forum.bitel.ru/

Логин пароль для сервера биллинга.
http://forum.bitel.ru/viewtopic.php?f=51&t=6859
Страница 1 из 1

Автор:  aardvark [ 14 июн 2012, 19:27 ]
Заголовок сообщения:  Логин пароль для сервера биллинга.

В доке написано что указываются данные сущности в общем конфиге например имеем следующее.
Код:
bgbilling:server.1.id=b-core
bgbilling:server.1.title=b-core
bgbilling:server.1.url=http://10.13.29.24:8080/bgbilling/executer
bgbilling:server.1.version=5.1
bgbilling:server.1.customerIdParam=50

bgbilling:creator.server.1.billingId=b-core
bgbilling:creator.server.1.user=bgcrm
bgbilling:creator.server.1.pswd=12345
bgbilling:creator.server.1.paramMapping=1:1;7:37;
bgbilling:creator.server.1.pageSize=10

Однако пока мы не пропишем в конфиге пользователя эти самые
Код:
bgbilling:login=bgcrm
bgbilling:password=12345

На сервер нас не пускает. К примеру попытка создать договор оканчивается неправильным паролем
Код:
06-14/17:21:58 DEBUG [http-bio-9088-exec-5] BillingAction -
r:org.apache.catalina.connector.RequestFacade@68ec7913;
f:ru.bgcrm.plugin.bgbilling.struts.form.BillingActionForm@6917ffc5; q: billingId=b-core&billing(module)=contract&billing(action)=GetPatternList                                                                             

06-14/17:21:58 DEBUG [http-bio-9088-exec-5] TransferData - http://10.13.29.24:8080/bgbilling/executer?module=con
tract&action=GetPatternList&                                                                                   
06-14/17:21:58 DEBUG [http-bio-9088-exec-5] TransferData - [ length = 94 ] xml = <?xml version="1.0" encoding="w
indows-1251"?>                                                                                                 
<data status="error">Неправильный пароль.</data>


Возникает вопрос это архитектурная задумка что пароль для доступа на сервер биллинга должен храниться в конфиге пользователя или это бага?
Возникает дополнительный вопрос что делать если серверов несколько и там от большого ума созданы пользователи с разными логинами и паролями? Горевать?

Автор:  Администратор [ 15 июн 2012, 17:05 ]
Заголовок сообщения:  Re: Логин пароль для сервера биллинга.

Цитата:
Возникает вопрос это архитектурная задумка что пароль для доступа на сервер биллинга должен храниться в конфиге пользователя или это бага?

Задумано так, а то, что вы видели для creator - это под каким пользователем импорт контрагентов обращается.
Он же сервером инициируется.

Цитата:
Возникает дополнительный вопрос что делать если серверов несколько и там от большого ума созданы пользователи с разными логинами и паролями? Горевать?

Сводить логины. Можно, конечно, сделать поддержку логинов-паролей для биллингов, типа bgbilling:<billingId>.login=, но по-моему это только запутает всё. Лучше уж один раз свести.
В перспективе хотим сделать заведение пользователей в биллингах при заведение в ЦРМке пользователя, в зависимости от указанных прав и там вообще путанно выйдет.

Лучше вообще чтобы везде один логин был. И в ЦРМке и в биллингах.

Автор:  aardvark [ 15 июн 2012, 17:48 ]
Заголовок сообщения:  Re: Логин пароль для сервера биллинга.

Ясно парадигму понял.
Дополнительно тогда вопрос то что все пароли/логины везде лежат в cleartext это пока потому что не придумали как их лучше хранить?

Автор:  Администратор [ 15 июн 2012, 18:00 ]
Заголовок сообщения:  Re: Логин пароль для сервера биллинга.

Ну потому что их надо будет копировать во внешнюю систему при правке (биллинг). А если их захэшировать - то не получится.
Ну вернее можно не через акшен а как-то нестандартно в базе напрямую обновить, если знать вид хэша, но не хотелось бы так делать...
Да и мало ли куда придётся экспортировать их.

Автор:  aardvark [ 18 июн 2012, 12:51 ]
Заголовок сообщения:  Re: Логин пароль для сервера биллинга.

если четсно вот так вот в cleartext хранить пароли сыкотно, я понимаю что хеш это в принципе только защита от дурака. Однако знаете боязно.

Автор:  skyb [ 20 июн 2012, 07:48 ]
Заголовок сообщения:  Re: Логин пароль для сервера биллинга.

А можно по подробней, я правдо не уверен что у меня подобная проблема, но сейчас в с BGCRM нет возможности пойска договоров с биллинга, вот что в логах

Код:
06-20/11:28:20 ERROR [pool-9-thread-2] XMLUtils - The declaration for the entity "ContentType" must end with '>'.
org.xml.sax.SAXParseException: The declaration for the entity "ContentType" must end with '>'.
        at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
        at ru.bgcrm.util.XMLUtils.parseDocument(XMLUtils.java:257)
        at ru.bgcrm.util.XMLUtils.parseDocument(XMLUtils.java:241)
        at ru.bgcrm.plugin.bgbilling.TransferData.getDocument(TransferData.java:217)
        at ru.bgcrm.plugin.bgbilling.TransferData.postData(TransferData.java:96)
        at ru.bgcrm.plugin.bgbilling.TransferData.postDataSafe(TransferData.java:56)
        at ru.bgcrm.plugin.bgbilling.RequestToBilling.run(RequestToBilling.java:62)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader - getResourceAsStream(META-INF/services/org.apache.xml.dtm.DTMManager)
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader -   Searching local repositories
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader -     findResource(META-INF/services/org.apache.xml.dtm.DTMManager)
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader -     --> Resource not found, returning null
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader -   Delegating to parent classloader unconditionally sun.misc.Launcher$AppClassLoader@1a45a877
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader -   --> Returning stream from parent
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader - loadClass(org.apache.xml.dtm.ref.DTMManagerDefault, false)
06-20/11:28:20 ERROR [pool-9-thread-2] XMLUtils -
java.lang.NullPointerException
        at org.apache.xpath.XPathAPI.eval(XPathAPI.java:227)
        at org.apache.xpath.XPathAPI.selectNodeIterator(XPathAPI.java:126)
        at org.apache.xpath.XPathAPI.selectSingleNode(XPathAPI.java:87)
        at org.apache.xpath.XPathAPI.selectSingleNode(XPathAPI.java:67)
        at ru.bgcrm.util.XMLUtils.selectText(XMLUtils.java:432)
        at ru.bgcrm.util.XMLUtils.selectText(XMLUtils.java:394)
        at ru.bgcrm.plugin.bgbilling.TransferData.checkDocumentStatus(TransferData.java:275)
        at ru.bgcrm.plugin.bgbilling.TransferData.postData(TransferData.java:98)
        at ru.bgcrm.plugin.bgbilling.TransferData.postDataSafe(TransferData.java:56)
        at ru.bgcrm.plugin.bgbilling.RequestToBilling.run(RequestToBilling.java:62)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader - getResourceAsStream(META-INF/services/org.apache.xml.dtm.DTMManager)
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader -   Searching local repositories
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader -     findResource(META-INF/services/org.apache.xml.dtm.DTMManager)
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader -     --> Resource not found, returning null
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader -   Delegating to parent classloader unconditionally sun.misc.Launcher$AppClassLoader@1a45a877
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader -   --> Returning stream from parent
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader - loadClass(org.apache.xml.dtm.ref.DTMManagerDefault, false)
06-20/11:28:20 ERROR [pool-9-thread-2] XMLUtils -
java.lang.NullPointerException
        at org.apache.xpath.XPathAPI.eval(XPathAPI.java:227)
        at org.apache.xpath.XPathAPI.selectNodeIterator(XPathAPI.java:126)
        at org.apache.xpath.XPathAPI.selectSingleNode(XPathAPI.java:87)
        at org.apache.xpath.XPathAPI.selectSingleNode(XPathAPI.java:67)
        at ru.bgcrm.util.XMLUtils.selectText(XMLUtils.java:432)
        at ru.bgcrm.util.XMLUtils.selectText(XMLUtils.java:394)
        at ru.bgcrm.plugin.bgbilling.TransferData.checkDocumentStatus(TransferData.java:278)
        at ru.bgcrm.plugin.bgbilling.TransferData.postData(TransferData.java:98)
        at ru.bgcrm.plugin.bgbilling.TransferData.postDataSafe(TransferData.java:56)
        at ru.bgcrm.plugin.bgbilling.RequestToBilling.run(RequestToBilling.java:62)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader - getResourceAsStream(META-INF/services/javax.xml.parsers.DocumentBuilderFactory)
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader -   Searching local repositories
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader -     findResource(META-INF/services/javax.xml.parsers.DocumentBuilderFactory)
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader -     --> Resource not found, returning null
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader -   Delegating to parent classloader unconditionally sun.misc.Launcher$AppClassLoader@1a45a877
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader -   --> Returning stream from parent
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader - loadClass(org.apache.xerces.jaxp.DocumentBuilderFactoryImpl, false)
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader - getResourceAsStream(META-INF/services/org.apache.xerces.xni.parser.XMLParserConfiguration)
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader -   Searching local repositories
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader -     findResource(META-INF/services/org.apache.xerces.xni.parser.XMLParserConfiguration)
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader -     --> Resource not found, returning null
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader -   Delegating to parent classloader unconditionally sun.misc.Launcher$AppClassLoader@1a45a877
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader -   --> Resource not found, returning null
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader - loadClass(org.apache.xerces.parsers.XIncludeAwareParserConfiguration, false)
06-20/11:28:20 DEBUG [pool-9-thread-2] WebappClassLoader - loadClass(org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl, false)
06-20/11:28:20 ERROR [pool-9-thread-2] TransferData - ru.bgcrm.model.BGMessageException
ru.bgcrm.model.BGException: ru.bgcrm.model.BGMessageException
        at ru.bgcrm.plugin.bgbilling.TransferData.postData(TransferData.java:104)
        at ru.bgcrm.plugin.bgbilling.TransferData.postDataSafe(TransferData.java:56)
        at ru.bgcrm.plugin.bgbilling.RequestToBilling.run(RequestToBilling.java:62)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
Caused by: ru.bgcrm.model.BGMessageException
        at ru.bgcrm.plugin.bgbilling.TransferData.checkDocumentStatus(TransferData.java:278)
        at ru.bgcrm.plugin.bgbilling.TransferData.postData(TransferData.java:98)
        ... 5 more
06-20/11:28:20 DEBUG [http-bio-9088-exec-9] ActionCommandBase - Executing org.apache.struts.chain.commands.ExecuteForwardCommand

Ещё есть такое
Код:
06-20/11:28:34 DEBUG [http-bio-9088-exec-3] Http11Processor - Error parsing HTTP request header
java.net.SocketTimeoutException: Read timed out
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:129)
        at org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:516)
        at org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:501)
        at org.apache.coyote.http11.Http11Processor.setRequestLineReadTimeout(Http11Processor.java:172)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:912)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
06-20/11:28:34 DEBUG [http-bio-9088-exec-3] Http11Protocol - process() process Socket: [166388063], Processor: [599496745], State: [CLOSED]
06-20/11:28:34 DEBUG [http-bio-9088-exec-3] JIoEndpoint - Closing socket:org.apache.tomcat.util.net.SocketWrapper@3a252a17

Автор:  aardvark [ 20 июн 2012, 16:47 ]
Заголовок сообщения:  Re: Логин пароль для сервера биллинга.

Код:
Error parsing HTTP request header
java.net.SocketTimeoutException: Read timed out

Ничего не значит их у меня много а всё равно всё работает, подозреваю это такой хартбит.

у тебя судя по всему передача странно проходит покажи что показывает
Код:
grep "TransferData" bgcrm.log


В общем падает оно здесь
Код:
   if (source != null)
    {
      try
      {
        DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
        dFactory.setNamespaceAware(true);
        dFactory.setValidating(false);
        DocumentBuilder docBuilder = dFactory.newDocumentBuilder();

->        result = docBuilder.parse(source); <-
      }
      catch (Exception e)
      {
        if (showError)
        {
          logger.error(e.getMessage(), e);
        }
      }
    }

а это значит что у тебя либо не полный либо не правильный xml приходит. Тип биллинга 5.1 или 5.2 в общих настройках конфига bgbilling:server.* правильно указан? самодельного xml быть не могёт?
Покаж конфиг общий bgcrm вобщем.

Автор:  skyb [ 21 июн 2012, 07:54 ]
Заголовок сообщения:  Re: Логин пароль для сервера биллинга.

aardvark писал(а):
Код:
Error parsing HTTP request header
java.net.SocketTimeoutException: Read timed out

Ничего не значит их у меня много а всё равно всё работает, подозреваю это такой хартбит.

у тебя судя по всему передача странно проходит покажи что показывает
Код:
grep "TransferData" bgcrm.log


Код:
# grep "TransferData" bgcrm.log
        at ru.bgcrm.plugin.bgbilling.TransferData.getDocument(TransferData.java:217)
        at ru.bgcrm.plugin.bgbilling.TransferData.postData(TransferData.java:96)
        at ru.bgcrm.plugin.bgbilling.TransferData.postDataSafe(TransferData.java:56)
        at ru.bgcrm.plugin.bgbilling.TransferData.checkDocumentStatus(TransferData.java:275)
        at ru.bgcrm.plugin.bgbilling.TransferData.postData(TransferData.java:98)
        at ru.bgcrm.plugin.bgbilling.TransferData.postDataSafe(TransferData.java:56)
        at ru.bgcrm.plugin.bgbilling.TransferData.checkDocumentStatus(TransferData.java:278)
        at ru.bgcrm.plugin.bgbilling.TransferData.postData(TransferData.java:98)
        at ru.bgcrm.plugin.bgbilling.TransferData.postDataSafe(TransferData.java:56)
06-20/11:26:38 ERROR [pool-9-thread-1] TransferData - ru.bgcrm.model.BGMessageException
        at ru.bgcrm.plugin.bgbilling.TransferData.postData(TransferData.java:104)
        at ru.bgcrm.plugin.bgbilling.TransferData.postDataSafe(TransferData.java:56)
        at ru.bgcrm.plugin.bgbilling.TransferData.checkDocumentStatus(TransferData.java:278)
        at ru.bgcrm.plugin.bgbilling.TransferData.postData(TransferData.java:98)
        at ru.bgcrm.plugin.bgbilling.TransferData.getDocument(TransferData.java:217)
        at ru.bgcrm.plugin.bgbilling.TransferData.postData(TransferData.java:96)
        at ru.bgcrm.plugin.bgbilling.TransferData.postDataSafe(TransferData.java:56)
        at ru.bgcrm.plugin.bgbilling.TransferData.checkDocumentStatus(TransferData.java:275)
        at ru.bgcrm.plugin.bgbilling.TransferData.postData(TransferData.java:98)
        at ru.bgcrm.plugin.bgbilling.TransferData.postDataSafe(TransferData.java:56)
        at ru.bgcrm.plugin.bgbilling.TransferData.checkDocumentStatus(TransferData.java:278)
        at ru.bgcrm.plugin.bgbilling.TransferData.postData(TransferData.java:98)
        at ru.bgcrm.plugin.bgbilling.TransferData.postDataSafe(TransferData.java:56)
06-20/11:28:20 ERROR [pool-9-thread-2] TransferData - ru.bgcrm.model.BGMessageException
        at ru.bgcrm.plugin.bgbilling.TransferData.postData(TransferData.java:104)
        at ru.bgcrm.plugin.bgbilling.TransferData.postDataSafe(TransferData.java:56)
        at ru.bgcrm.plugin.bgbilling.TransferData.checkDocumentStatus(TransferData.java:278)
        at ru.bgcrm.plugin.bgbilling.TransferData.postData(TransferData.java:98)

aardvark писал(а):
В общем падает оно здесь
Код:
   if (source != null)
    {
      try
      {
        DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
        dFactory.setNamespaceAware(true);
        dFactory.setValidating(false);
        DocumentBuilder docBuilder = dFactory.newDocumentBuilder();

->        result = docBuilder.parse(source); <-
      }
      catch (Exception e)
      {
        if (showError)
        {
          logger.error(e.getMessage(), e);
        }
      }
    }

а это значит что у тебя либо не полный либо не правильный xml приходит. Тип биллинга 5.1 или 5.2 в общих настройках конфига bgbilling:server.* правильно указан? самодельного xml быть не могёт?
Покаж конфиг общий bgcrm вобщем.

Код:
# формат адресного параметра, доступны переменные: index, сity, area, quarter, street, house, flat, room, pod, floor, comment
address.format=(${city})(, ${street})(, д. ${house})(, кв. ${flat})( ${room})
#
# шаблон описания контрагента для поиска
# в нём можно указать параметры контрагента подстановками вида (param:<code>); например: (${param:73} г.р.)(, ${param:12})
#customer.reference.pattern=
#
# форматирование параметра типа "phone", общий формат одного номера
#param.phone.format=(${number})( [${comment}]);
# форматирование поля ${number} внутри каждого номера, в зависимости от формата
#param.phone.format.number=+X XXX XXX-XX-XX
#param.phone.format.number.f10=+X XXX-XXX-XX-XX
#param.phone.format.number.f13=+X (XXX) XXX-XX-XX
#param.phone.format.number.f14=+X (XXXX) XX-XX-XX
#param.phone.format.number.f15=+X (XXXXX) X-XX-XX
# количество полей в параметре типа "телефон"
param.phone.item.count=4
# префикс по-умолчанию для параметра типа "телефон"
param.phone.default.prefix=3472
#
# при пробросе запросов на сервер с помощью Proxy сервера - имя HTTP заголовка, в котором передаётся адрес клиента
#header.name.remote.addr=X-Real-IP
#
# проверка прав доступа пользователей, 1 - включить
user.permission.check=0
#
# динамический код
dynamic.src.dir=dyn
dynamic.src.encoding=UTF-8
#
# планировщик, запуск - 1 
scheduler.start=0
bgbilling:server.1.id=test
bgbilling:server.1.title=test
bgbilling:server.1.url=http://10.0.0.23:8081/bgbilling/webexecuter
bgbilling:server.1.version=5.2
bgbilling.server.1.customerIdParam=100
bgbilling:login=login
bgbilling:password=pass
# загрузчик контрагентов
# дата рожд, адреса  услуг, сот. телефон(ы), паспорт с.-н.
bgbilling:creator.confirmParameters=1,43,42,39,41
# поиск по с.-н. паспорта, адресам услуг, сот. телефонам
bgbilling:creator.searchParameters=1,43,42,39,41
# расстояние по Левинштейну
bgbilling:creator.titleDistance=2
# кодовая фр., дата рожд., с.-н. пасп., д.в. пасп., кем выд. пасп, адрес проп., тел. гор, тел. сот, адрес(а) усл.
bgbilling:creator.importParameters=1,43,42,39,41
#
# группа параметров контрагента
bgbilling:creator.parameterGroupRule.1.paramGroupId=3
#
bgbilling:creator.server.1.billingId=test
bgbilling:creator.server.1.user=user
bgbilling:creator.server.1.pswd=pass
bgbilling:creator.server.1.paramMapping=1:1;2:3;3:42;4:39;5:41;
bgbilling:creator.server.1.pageSize=10
#
bgbilling:contractType.1.title=First
bgbilling:contractType.1.billing=test

Автор:  aardvark [ 21 июн 2012, 11:29 ]
Заголовок сообщения:  Re: Логин пароль для сервера биллинга.

вместо
Код:
bgbilling:server.1.url=http://10.0.0.23:8081/bgbilling/webexecuter

делай
Код:
bgbilling:server.1.url=http://10.0.0.23:8081/bgbilling/executer


ну и вместо
Код:
bgbilling.server.1.customerIdParam=100
делай
Код:
bgbilling:server.1.customerIdParam=100


больше ошибок не вижу.
потому что у тебя webexecuter поставлен crm просто не может нормально к биллингу приконектиться. То есть он коннектиться, но ему приходит неправильный xml после чего он в такую позу и встаёт. :D

Автор:  skyb [ 21 июн 2012, 11:37 ]
Заголовок сообщения:  Re: Логин пароль для сервера биллинга.

Тьхе блин, действительно же...вот я балда :-D пасиба.

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/