使用WLST管理Weblogic角色时如何处理组名中的空格?

时间:2016-08-30 10:26:33

标签: weblogic wlst

我需要使用WLST调整weblogic 12中的一些角色分配。在这种情况下,我想为一个组的所有成员分配一个角色。

这是一个像魅力一样工作的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

有解决方法,还是我们必须更改这些群组名称?

1 个答案:

答案 0 :(得分:0)

您可以使用weblogic.entitlement.parser.Parser课程进行检查。 WLST shell:

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