Невозможно настроить wso2is-5.6.0 с wso2am-2.5.0

Объяснение

Вложенная группа автоматически не приводит к катастрофическому обратному отскоку. В вашем случае это связано с тем, что ваше регулярное выражение вырождается в классический пример катастрофического обратного отсчета (a*)*.

Поскольку \s в необязательном в ^([a-zA-Z0-9'-]+\s?)*$, на входе без каких-либо пробелов, но имеет символы вне разрешенных list, регулярное выражение просто вырождается до ^([a-zA-Z0-9'-]+)*$.

Вы также можете думать о расширении исходного регулярного выражения:

[a-zA-Z0-9'-]+\s?[a-zA-Z0-9'-]+\s?[a-zA-Z0-9'-]+\s?[a-zA-Z0-9'-]+\s?...

Поскольку \s является необязательным, мы можем удалите его:

[a-zA-Z0-9'-]+[a-zA-Z0-9'-]+[a-zA-Z0-9'-]+[a-zA-Z0-9'-]+...

И мы получили серию последовательных [a-zA-Z0-9'-]+, которые будут пытаться использовать все способы распространения символов между собой и взорвать сложность.

Решение

Стандартный способ записи регулярного выражения в соответствие с token delimiter token ... delimiter token - token (delimiter token)*. Хотя можно переписать регулярное выражение, не повторять token, я бы рекомендовал против него, так как это сложно сделать правильно. Чтобы избежать повторения, вы можете захотеть создать регулярное выражение путем конкатенации строк.

Следуя рецепту выше:

^[a-zA-Z0-9'-]+(\s[a-zA-Z0-9'-]+)*$

Хотя вы можете видеть повторение в повторении здесь, нет катастрофическое обратное отслеживание, поскольку регулярное выражение может расширяться только до:

[a-zA-Z0-9'-]+\s[a-zA-Z0-9'-]+\s[a-zA-Z0-9'-]+\s[a-zA-Z0-9'-]+...

И \s и [a-zA-Z0-9'-] взаимно исключают друг друга - есть только один способ сопоставления любой строки.

0
задан Pankaj 16 January 2019 в 13:10
поделиться

1 ответ

Шаг 2. Совместное использование реестра как WSO2 API Manager, так и WSO2 Identity Server. См. Разделение пространства реестра для шагов.
Что я не могу получить. И как это сделать. И что это значит.

Общий доступ к реестру - вы можете следовать документации https://docs.wso2.com/display/AM260/Install+and+Configuring+the+Databases

[118 ] для обоих продуктов (AM и IS):

  • создать общую отдельную базу данных для реестра (например, regdb)
  • настроить regdb в master-datasources.xml
  • [ 115] настроить реестр для использования базы данных общего реестра (точка 12а)

<dbConfig name="govregistry"> <dataSource>jdbc/WSO2REG_DB</dataSource> </dbConfig> <remoteInstance url="https://localhost:9443/registry"> <id>gov</id> <cacheId>user@jdbc:mysql://db.mysql-wso2.com:3306/regdb</cacheId> <dbConfig>govregistry</dbConfig> <readOnly>false</readOnly> <enableCache>true</enableCache> <registryRoot>/</registryRoot> </remoteInstance> <mount path="/_system/governance" overwrite="true"> <instanceId>gov</instanceId> <targetPath>/_system/governance</targetPath> </mount> <mount path="/_system/config" overwrite="true"> <instanceId>gov</instanceId> <targetPath>/_system/config</targetPath> </mount>

0
ответ дан gusto2 16 January 2019 в 13:10
поделиться