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. >> >