leonamp / SPFBL

Serviço de consulta SPF com blacklist, greylist, whitelist e spamtrap incorporados.
GNU General Public License v3.0
58 stars 23 forks source link

Problema ao criar usuário #94

Closed raffus closed 5 years ago

raffus commented 5 years ago

Durante o passo do reCAPATCHA ao cadastrar um usuário, tenho a seguinte mensagem de erro no console:

Exception in thread "HTTP00001" java.lang.NoClassDefFoundError: javax/activation/DataSource at net.spfbl.core.Core.newMessage(Core.java:2247) at net.spfbl.http.ServerHTTP.enviarOTP(ServerHTTP.java:4086) at net.spfbl.http.ServerHTTP$AccessHandler.handle(ServerHTTP.java:819) at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77) at jdk.httpserver/sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:82) at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:80) at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:691) at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77) at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:663) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:844) Caused by: java.lang.ClassNotFoundException: javax.activation.DataSource at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499) ... 12 more

O email com a senha de ativação não chega na caixa e não consigo continuar o processo.

Ao tentar enviar pelo console, digitando:

spfbl.sh user send-totp user@dominio.com.br

Retorna o erro:

TIMEOUT

Nos logs:

2018-10-16T14:20:27.564-0300 00002 SERVERADM ADMIN 1.2.3.4 localhost user@dominio.com.br: USER SEND user@dominio.com.br TOTP 2018-10-16T14:20:27.567-0300 00000 SERVERADM INFOR server closed.

Sabe o que pode estar ocorrendo?

leonamp commented 5 years ago

Olá Raffus! Apague a sua pasta lib e copie a nova pasta lib da versão mais nova que se encontra aqui no Github. Tenha certeza também que sua versão de Java é 8 ou superior. Me dê um feedback.

raffus commented 5 years ago

Oi Leandro, na verdade eu dei um git CLONE do projeto (acredito que tenha vindo a última versão). Mesmo não funcionando, rodei o script de instalação que vem dentro do projeto. Também não funcionou.

Sobre o JAVA:

openjdk 10.0.2 2018-07-17 OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.2) OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.2, mixed mode)

Alguma sugestão?

Obrigado.

leonamp commented 5 years ago

Com certeza! O método mais seguro é seguir esses passos manulamente:

https://github.com/leonamp/SPFBL/wiki/Primeiros-passos-para-iniciar-o-SPFBL

Dependendo do Java que você instala, isso pode trazer problemas na execução.

raffus commented 5 years ago

Em um determinado passo no tutorial que você mencionou, é preciso cadastrar novos sources no APT. Eu segui os passos, mas a atualização do JAVA não funciona pois o arquivo não é encontrado.

Location: http://download.oracle.com/otn-pub/java/jdk/8u181- b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz? AuthParam=1539781409_d81e7ddf35a204d12763f4f58fddcaa6 [following] --2018-10-17 10:01:46-- http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz?AuthParam=1539781409_d81e7ddf35a204d12763f4f58fddcaa6 Connecting to download.oracle.com (download.oracle.com)|23.32.32.120|:80... connected. HTTP request sent, awaiting response... 404 Not Found 2018-10-17 10:01:47 ERROR 404: Not Found.

leonamp commented 5 years ago

Entendi. Veja se consegue informações de como instalar o Java 8 direto da Oracle com o suporte do seu datacenter pois pode ocorrer de cada datacenter ter seu próprio método de instalação do Java diretamente da Oracle. Por exemplo, lá na Digital Ocean eles fazem assim:

https://www.digitalocean.com/community/tutorials/como-instalar-o-java-com-apt-get-no-ubuntu-16-04-pt

raffus commented 5 years ago

Eu atualizei para o JAVA 11 e o problema persiste...

java --version

java 11.0.1 2018-10-16 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)

Você mencionou alguma coisa do DKIM certo? Eu desativei esse recurso no config, ainda assim, o erro persiste:

Exception in thread "HTTP00001" java.lang.NoClassDefFoundError: javax/activation/DataSource
    at net.spfbl.core.Core.newMessage(Core.java:2247)
    at net.spfbl.http.ServerHTTP.enviarOTP(ServerHTTP.java:4086)
    at net.spfbl.http.ServerHTTP$AccessHandler.handle(ServerHTTP.java:819)
    at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77)
    at jdk.httpserver/sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:82)
    at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:80)
    at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:692)
    at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77)
    at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:664)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.ClassNotFoundException: javax.activation.DataSource
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 12 more

Essa excessão ocorre quando eu aceito o CAPTCHA.

leonamp commented 5 years ago

Beleza. Seu executável SPFBL.jar deve estar acompanhado da pasta lib com todos estes arquivos:

https://github.com/leonamp/SPFBL/tree/master/lib

Essa falha se refere ao problema em encontrar a biblioteca do javamail e do DKIMforJavaMail.

raffus commented 5 years ago

Tentei seguir o tutorial da Digital Ocean mas o erro é o mesmo. Tentei usar o link do instalador mas a Oracle tirou esse link do ar, por isso o download falha e a instalação também.

Só consegui instalando o java11... Mesmo assim, parece que falta essa lib.

leonamp commented 5 years ago

Beleza. Veja minha explicação anterior sobre as bibliotecas.

raffus commented 5 years ago

A pasta lib está dentro da /opt/spfbl, veja:

# ls -la /opt/spfbl/lib/
total 9060
drwxr-xr-x 2 root root    4096 Oct 16 14:11 .
drwxr-xr-x 6 root root    4096 Oct 16 14:16 ..
-rw-r--r-- 1 root root   78688 Oct 17 10:29 acme4j-client-0.10.jar
-rw-r--r-- 1 root root   91314 Oct 17 10:29 acme4j-client-2.0.jar
-rw-r--r-- 1 root root   11650 Oct 17 10:29 acme4j-utils-0.10.jar
-rw-r--r-- 1 root root    9114 Oct 17 10:29 acme4j-utils-2.0.jar
-rw-r--r-- 1 root root  775948 Oct 17 10:29 bcpkix-jdk15on-157.jar
-rw-r--r-- 1 root root 3759724 Oct 17 10:29 bcprov-jdk15on-157.jar
-rw-r--r-- 1 root root  284184 Oct 17 10:29 commons-codec-1.10.jar
-rw-r--r-- 1 root root  412740 Oct 17 10:29 commons-lang3-3.3.2.jar
-rw-r--r-- 1 root root  280983 Oct 17 10:29 commons-net-3.3.jar
-rw-r--r-- 1 root root  190098 Oct 17 10:29 commons-validator-1.4.1.jar
-rw-r--r-- 1 root root   11805 Oct 17 10:29 DKIMforJavaMail.jar
-rw-r--r-- 1 root root  306090 Oct 17 10:29 dnsjava-2.1.7.jar
-rw-r--r-- 1 root root   17709 Oct 17 10:29 dsn-1.5.6.jar
-rw-r--r-- 1 root root  125521 Oct 17 10:29 javax.json-1.1.jar
-rw-r--r-- 1 root root  521990 Oct 17 10:29 javax.mail.jar
-rw-r--r-- 1 root root  257824 Oct 17 10:29 jose4j-0.6.0.jar
-rw-r--r-- 1 root root  355356 Oct 17 10:29 jsoup-1.10.3.jar
-rw-r--r-- 1 root root   10262 Oct 17 10:29 junique-1.0.4.jar
-rw-r--r-- 1 root root  996444 Oct 17 10:29 mysql-connector-java-5.1.42-bin.jar
-rw-r--r-- 1 root root   10344 Oct 17 10:29 recaptcha4j-0.0.8.jar
-rw-r--r-- 1 root root   41203 Oct 17 10:29 slf4j-api-1.7.25.jar
-rw-r--r-- 1 root root   15257 Oct 17 10:29 slf4j-simple-1.7.25.jar
-rw-r--r-- 1 root root  205798 Oct 17 10:29 syslog4j-0.9.46-bin.jar
-rw-r--r-- 1 root root  449685 Oct 17 10:29 zxing-2.1.jar
leonamp commented 5 years ago

Beleza. Esse problema está além da minha capacidade. Peço que entre lá na nossa lista de discussão e pergunte para a galera pois alguém deve saber resolver isso beleza?

https://groups.google.com/d/forum/spfbl

raffus commented 5 years ago

Leandro.. mais uma dúvida.. Quando eu rodo o comando:

spfbl.sh user send-totp user@dominio.com.br Os logs do SPFBL retornam apenas essa mensagem:

2018-10-17T10:45:47.878-0300 00000 SERVERADM INFOR server closed.

Existe alguma forma de depurar melhor o que está ocorrendo?

leonamp commented 5 years ago

Difícil descobrir o que está acontecendo se a versão do seu Java for incompatível ou se, por algum motivo desconhecido, seu Java não estiver carregando as bibliotecas da forma correta. Infelizmente não consigo te ajudar por foge da minha capacidade. Entre na nossa lista de discussão e tire todas essas dúvidas por lá beleza?

raffus commented 5 years ago

Blz.. Apenas para complementar (na esperança de um EUREKA, rsrsrs):

2018-10-17T10:58:19.439-0300 00000 SERVERADM DEBUG sending TOTP by e-mail. 
2018-10-17T10:58:19.438-0300 00014 SERVERADM ADMIN 1.2.3.4 UNKNOWN: USER SEND user@domionio.com.br TOTP 
2018-10-17T10:58:19.453-0300 00000 SERVERADM INFOR server closed. 
leonamp commented 5 years ago

Ok. Comportamento de sistema completamente inesperado. É como se não fosse o mesmo sistema que desenvolvemos.

raffus commented 5 years ago

Leandro, uma outra dúvida. Como é feito o envio da senha? Eu vi em algum lugar que é enviado um QRCODE, isso procede? Em caso afirmativo, será que não seria alguma biblioteca de imagem que estaria faltando? Obrigado!

leonamp commented 5 years ago

Sim. O QRcode usa a biblioteca zxing-2.1.jar. Basta verificar se esta está na sua instalação.

raffus commented 5 years ago

Apenas para registrar, problema resolvido usando no script de inicialização o parâmetro --add-modules java.activation

Seems like javax.activation package is deprecated in Java 9. Oracle migration guide proposes to use --add-modules java.activation option during JVM start.

Funcionou! :)

leonamp commented 5 years ago

Opa! Sensacional! Cada dia que passa a gente ganha um conhecimento novo.

raffus commented 5 years ago

Uma última dúvida.. consegui logar no painel, mas pra mim não aparece nenhum dado.

captura de tela 2018-10-17 14 00 59

raffus commented 5 years ago

Achei isso nos logs do POSTFIX:

Oct 17 17:05:17 powersmtp postfix/smtpd[2279]: warning: premature end-of-input on :9877 while reading input attribute name

leonamp commented 5 years ago

Essa tela só mostra registros de consulta realizados. Se o seu serviço nunca recebeu consultas, então está correto não haver registros nesta tela.

raffus commented 5 years ago

Pode ter alguma relação com esta falha?

# telnet localhost 9877
Trying ::1...
Connected to localhost.localdomain.
Escape character is '^]'.
quit
TOO MANY CONNECTIONS
Connection closed by foreign host.
leonamp commented 5 years ago

Acho que não. Seu SO ou JVM devem estar com algum problema mesmo.

leonirlopes commented 2 years ago

Resolvi instalando o ncat