Как работать с пробелами в именах групп при управлении ролями Weblogic с помощью WLST?

Мне нужно настроить некоторые назначения ролей в weblogic 12 с помощью WLST. В этом случае я хочу назначить роль всем членам группы.

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

connect('XXXXXXXXXX', 'XXXXXXXXXXXXX', 't3://XXXXXXXX:XXXXXX')

cd ('SecurityConfiguration/weblogic/Realms/DecalogRealm/RoleMappers/DefaultRoleMapper')

print 'Setting condition for role "%s"...' % 'ComplianceSourceReader' ,
cmo.setRoleExpression(None,'ComplianceSourceReader',"Grp('ASSET MANAGER')")
print 'Done'

print "post edit report :"
print "=================="
print 'Role condition for "ComplianceSourceReader" role = %s' % (cmo.getRoleExpression(None,'ComplianceSourceReader'))
print
print "Done."

Я попробовал несколько распространенных способов экранирования символа пробела в имени группы выражения политики, но пока безуспешно. Я всегда получаю ту же ошибку

Caused by: weblogic.entitlement.data.EnCreateException: Missing ',' delimiter. for 'Grp("ASSET MANAGER")' at position:11
        at weblogic.entitlement.engine.EEngine.setRoleEntitlements(EEngine.java:1150)
        at weblogic.security.providers.authorization.DefaultRoleMapperImpl.setRoleExpression(DefaultRoleMapperImpl.java:328)
        ... 53 more

Есть ли способ обойти это или нам придется изменить имена этих групп?


person Frédéric CORNU    schedule 30.08.2016    source источник


Ответы (1)


Вы можете проверить это, используя класс weblogic.entitlement.parser.Parser. WLST-оболочка:

wls:/offline> from weblogic.entitlement.parser import Parser
wls:/offline> groups = ['ASSET MANAGER']
wls:/offline> print Parser.groups2Expr(groups)
{Grp(ASSET#KMANAGER)}
person Vyacheslav Shvets    schedule 07.09.2016