----- Le 20 Fév 23, à 10:55, Francesco Chicchiriccò [email protected] a écrit :
> On 16/02/23 17:56, Lionel SCHWARZ wrote:
>> Dear all,
>>
>> On my 3.0.1 syncope instance, I have defines a resource with 2 anyTypes
>> (objectclasses). I'm trying to setup a pull task which would run only on 1 of
>> these 2 anyTypes.
>>
>> I feel I have 2 solutions:
>> 1. run a "filtered reconciliation" with my own ReconFilterBuilder
>> implementation
>> 2. rather use 2 different resources, one for each anyType
>>
>> Did I miss something more simple to do that?
>
> Hi Lionel,
> the simplest way to achieve your goal is definitely (2).
Hi francesco,
I followed your advice, thanks.
I have another question regarding PULL. I have defined a mapping as follows:
"mapping": {
"connObjectLink": null,
"connObjectKeyItem": {
"intAttrName": "name",
"extAttrName": "__NAME__",
"connObjectKey": true,
"password": false,
"mandatoryCondition": "true",
"purpose": "BOTH",
"propagationJEXLTransformer": "value.split('\\.',2)[1]",
"pullJEXLTransformer": "'SERVICE.' + value",
"transformers": []
},
"items": [
...
]
}
to sepcify that the remote __NAME__ must match the local "name" attribute, with
a prefix, for example
Syncope anyobject name:"SERVICE.myservice" must match remote
__NAME__:"myservice".
Propagation works smoothly but during pull, I get the following error:
org.apache.syncope.core.provisioning.java.pushpull.InboundMatcher - Could not
match {Uid=Attribute: {Name=__UID__, Value=[1288]}, ObjectClass=ObjectClass:
IDMSERVICE, DeltaType=CREATE_OR_UPDATE, Token=SyncToken: ,
Object={Uid=Attribute: {Name=__UID__, Value=[1288]}, ObjectClass=ObjectClass:
IDMSERVICE, Attributes=[Attribute: {Name=__NAME__, Value=[idnum_service]},
Attribute: {Name=__UID__, Value=[1288]}], Name=Attribute: {Name=__NAME__,
Value=[idnum_service]}}, PreviousUid=null} with any existing SERVICE
java.lang.NullPointerException: null
at
org.apache.syncope.core.provisioning.api.jexl.JexlUtils.addFieldsToContext(JexlUtils.java:124)
~[syncope-core-provisioning-api-3.0.1.jar:3.0.1]
at
org.apache.syncope.core.provisioning.java.data.JEXLItemTransformerImpl.lambda$beforePull$1(JEXLItemTransformerImpl.java:179)
~[syncope-core-provisioning-java-3.0.1.jar:3.0.1]
at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
at
org.apache.syncope.core.provisioning.java.data.JEXLItemTransformerImpl.beforePull(JEXLItemTransformerImpl.java:176)
~[syncope-core-provisioning-java-3.0.1.jar:3.0.1]
at
org.apache.syncope.core.provisioning.java.pushpull.InboundMatcher.matchByConnObjectKeyValue(InboundMatcher.java:230)
~[syncope-core-provisioning-java-3.0.1.jar:3.0.1]
at
org.apache.syncope.core.provisioning.java.pushpull.InboundMatcher.match(InboundMatcher.java:420)
~[syncope-core-provisioning-java-3.0.1.jar:3.0.1]
I have the feeling that it comes from the "pullJEXLTransformer", but do not
understand what's wrong with this.
Do you have an idea, I'm stuck
Regards
Lionel
smime.p7s
Description: S/MIME Cryptographic Signature
