Unfortunately, I do not have much time for doing some digging. Sorry for
that :-(
You should look at JavaBasedUDFunction and  UDFExecutorServic.

Le lun. 4 avr. 2022 à 17:25, Sébastien Rebecchi <srebec...@kameleoon.com> a
écrit :

> Hi!
> Do you have any more ideas for me?
> Cordially,
> Sébastien.
>
> Le lun. 28 mars 2022 à 16:39, Sébastien Rebecchi <srebec...@kameleoon.com>
> a écrit :
>
>> Unfortunately, it is not working even with
>> "enable_user_defined_functions_threads: false" in cassandra.yaml :/
>> Is there any way to check the running configuration?
>>
>> Le lun. 28 mars 2022 à 15:35, Benjamin Lerer <ble...@apache.org> a
>> écrit :
>>
>>> I do not think that allowing to customize UDF classes whitelist has been
>>> discussed before. Feel free to open a JIRA ticket :-)
>>> I have some plans to revisit how we securise UDFs as the current
>>> threading approach has some impact in terms of latency. That can be a good
>>> opportunity to look into providing more flexibility.
>>>
>>> Le lun. 28 mars 2022 à 15:00, Sébastien Rebecchi <
>>> srebec...@kameleoon.com> a écrit :
>>>
>>>> Thanks you very much! I will try that.
>>>> As you know, would it be a long-terms solution? Or is there any plan to
>>>> add the possibility to customize UDF classes whitelist?
>>>>
>>>> Le lun. 28 mars 2022 à 14:31, Benjamin Lerer <ble...@apache.org> a
>>>> écrit :
>>>>
>>>>> Is there a way to customize that default behaviour?
>>>>>
>>>>>
>>>>> Looking at JavaBasedUDFunction quickly it seems that the ClassLoader
>>>>> is only used when you use the UDFExecutorService to execute your
>>>>> UDFs. You can try to disable it using
>>>>> "enable_user_defined_functions_threads: false" and see if it works.
>>>>> Now that also means that you have to ensure that only trusted persons
>>>>> can create UDF or UDA as it removes all safety mechanisms.
>>>>>
>>>>> Le lun. 28 mars 2022 à 13:23, Sébastien Rebecchi <
>>>>> srebec...@kameleoon.com> a écrit :
>>>>>
>>>>>> Hi Benjamin,
>>>>>>
>>>>>> Thanks for the answer.
>>>>>> Is there a way to customize that default behaviour? If no, could you
>>>>>> indicate where to find this class loader in the github of Cassandra 
>>>>>> please?
>>>>>>
>>>>>> Le lun. 28 mars 2022 à 12:40, Benjamin Lerer <ble...@apache.org> a
>>>>>> écrit :
>>>>>>
>>>>>>> Hi Sébastien,
>>>>>>>
>>>>>>> Cassandra uses a special classloader for UDFs that limit which
>>>>>>> classes can be used.
>>>>>>> You cannot rely on non-JDK classes for UDFs and some of the JDK
>>>>>>> packages like the IO package for example cannot be used.
>>>>>>> The goal is simply to ensure that UDFs cannot compromise the server
>>>>>>> security.
>>>>>>>
>>>>>>> Le lun. 28 mars 2022 à 11:31, Sébastien Rebecchi <
>>>>>>> srebec...@kameleoon.com> a écrit :
>>>>>>>
>>>>>>>> Hello,
>>>>>>>>
>>>>>>>> I am trying to create a UDF based on custom methods.
>>>>>>>> So I set enable_user_defined_functions to true and added a jar in
>>>>>>>> "/usr/share/cassandra/lib/" folder on every node, restarted the nodes 
>>>>>>>> and I
>>>>>>>> can see from the command line that the jar is indeed used (in the 
>>>>>>>> classpath
>>>>>>>> with -cp).
>>>>>>>>
>>>>>>>> But when i create the UDF I got that error:
>>>>>>>>
>>>>>>>> CREATE OR REPLACE FUNCTION blobToJson (input blob) RETURNS NULL ON
>>>>>>>> NULL INPUT RETURNS text LANGUAGE java AS 'return
>>>>>>>> com.kameleoon.visit.Visit.writeToJson(com.kameleoon.visit.Visit.readFromByteBuffer(input));';
>>>>>>>> InvalidRequest: Error from server: code=2200 [Invalid query]
>>>>>>>> message="Java source compilation failed:
>>>>>>>> Line 1: com.kameleoon.visit.Visit cannot be resolved to a type
>>>>>>>> Line 1: com.kameleoon.visit.Visit cannot be resolved to a type
>>>>>>>>
>>>>>>>> Of course the class com.kameleoon.visit.Visit does exist in the jar
>>>>>>>> and the jar has read rights to every user (chmod 444). So I can not 
>>>>>>>> find
>>>>>>>> the reason.
>>>>>>>>
>>>>>>>> versions are: [cqlsh 6.0.0 | Cassandra 4.0.1 | CQL spec 3.4.5 |
>>>>>>>> Native protocol v5]
>>>>>>>>
>>>>>>>> Any help would be appreciated!
>>>>>>>>
>>>>>>>> Thanks!
>>>>>>>>
>>>>>>>> Sébastien.
>>>>>>>>
>>>>>>>

Reply via email to