1
votes

I have created an authentication module which was build against ejabberd 16.02 and runs fine when auth_method is set. It also works against 16.03.

However, from 16.04 onwards it gives me the error "[error] ignoring option 'auth_method' with invalid value: [jwt]"

I checked the code diff between those releases and the only change seems to be to the mod_pubsub.erl file, specifically adding the following:

ServerHost = serverhost(Host),
+ ejabberd_hooks:run(pubsub_subscribe_node, ServerHost,
+ [ServerHost, Host, Node, Subscriber, SubId]),

https://github.com/processone/ejabberd/commit/639c2fb6401391663206c0e4c946d1a699689ac7

I have tried disabling this module and even deleting the beam file as i don't use it, but i can't seem ti get round it.

Does anyone have any insight as to why these changes will have broken my authentication module?

My source is at the link below, but as i say has worked fine for a year: https://github.com/ParamountVentures/ejabberd-auth-jwt

1
Just fyi, there seem to be 120 commits between 16.03 and 16.04: github.com/processone/ejabberd/compare/16.03...16.04 The one you linked to is just the last commit before 16.04 was tagged.Dogbert
Ah ok. I will look into those changes and try and figure out why it stopped working. Cheers.stevenlivz

1 Answers

0
votes

The answer is that from 16.04 onwards you need to drop the .erl file into the ejabberd src folder and compile it with the source. Dropping in the .beam file to use alternative authentication modules no longer works.