Java – Retirando a implementação do SLF4J de dependências

java Se você estiver utilizando alguma biblioteca em seu sistema que contenha alguma implementação do SLF4J , você pode retirar a mesma utilizando a dependência do SLF4J ‘slf4j-nop’ (non-operation). Um dos motivos para retira-lo é estar logando na System.out do sistema informações de log. Para retirar basta incluir a seguinte dependência:

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-nop</artifactId>
            <version>1.7.25</version>
        </dependency>

Java / .Net – SourceAFIS – Biblioteca de reconhecimento de impressões digitais – (Fingerprint recognition library)

fingerprint

SourceAFIS

for Java and .NET

SourceAFIS é um algoritmo que reconhece impressões digitais humanas. Ele pode comparar duas impressões digitais 1: 1 ou pesquisar um grande banco de dados 1: N para impressão digital correspondente. Ele pega imagens de impressões digitais na entrada e produz uma pontuação de similaridade na saída. A pontuação de similaridade é então comparada com o limite de correspondência personalizável.

O algoritmo SourceAFIS tem duas implementações de código aberto quase idênticas em Java puro e .NET puro. API SourceAFIS é projetado para máxima simplicidade e facilidade de uso por desenvolvedores de aplicativos. Precisão e velocidade de correspondência são suficientes para a maioria das aplicações..

Algorithm

O algoritmo SourceAFIS é o resultado do design de algoritmo independente. Não apenas copia algum algoritmo de livro didático. No entanto, ele empresta muito de outros correspondentes de impressões digitais de código aberto. Ele oferece precisão decente e velocidade de correspondência surpreendentemente alta.

O SourceAFIS, sendo o opensource, fornece um recurso muito raro de transparência de algoritmo que expõe estruturas de dados intermediárias computadas pelo algoritmo durante a correspondência de impressões digitais, o que abre a porta para aplicativos interessantes que antes eram impossíveis com os correspondentes comerciais.

A implementação open source do algoritmo combinado com a licença permissiva pode ser explorada para o desenvolvimento de modificações customizadas interessantes no algoritmo por qualquer um com algum tempo de sobra. Alterações no algoritmo também podem ser implementadas pelo autor do SourceAFIS como um projeto de desenvolvimento customizado e acessível.

https://sourceafis.machinezoo.com/

Java – Projeto Spring Security com JWT: Autenticação e Autorização por JDBC no MySQL (Spring Security Project with JWT: Authentication and Authorization by JDBC in MySQL)

spring_securityA ideia desse post não é realizar um passo a passo de como implementar o Spring Security, mas sim compartilhar um projeto bem simples e auto explicativo que desenvolvi. Esse projeto utiliza o Spring Security com autenticação JWT buscando seus usuários em um banco de dados em MySQL / MariaDB com senhas criptografadas em BCrypt.

https://github.com/helpdeveloper/spring-jwt-auth-jdbc

Java EE – Problemas com deploy de aplicações no Glassfish 5 (Web Service deployment into Glassfish error)

glassfish

Servlet [ParticipantPortTypePortImpl] and Servlet [CoordinatorPortTypePortImpl] have the same url pattern: [/WSAT10Service]. Related annotation information: annotation [@javax.jws.WebService(wsdlLocation=/wsdls/wsat10/wsat.wsdl, name=, portName=CoordinatorPortTypePort, endpointInterface=com.sun.xml.ws.tx.at.v10.types.CoordinatorPortType, serviceName=WSAT10Service, targetNamespace=http://schemas.xmlsoap.org/ws/2004/10/wsat)] on annotated element [class com.sun.xml.ws.tx.at.v10.endpoint.CoordinatorPortTypePortImpl] of type [TYPE]

Esse erro ocorre pois em suas dependências no projeto há algo em conflito com o Glassfish, normalmente bibliotecas do próprio glassfish, basta remove-las e utilizar somente bibliotecas referente ao WebService. Exemplo:

<dependencies>
<!--      
       Não utilizar essa dependência! 
        <dependency>
            <groupId>org.glassfish.metro</groupId>
            <artifactId>webservices-rt</artifactId>
            <version>2.3</version>
            <scope>compile</scope>
        </dependency>
-->
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>7.0</version>
            <scope>provided</scope>
        </dependency>
   
</dependencies>

Java – Ler um arquivo e codifica-lo para Base64 – Converter File para Base64 (Encode file to Base64)

java

 private String encodeFileToBase64Binary(File file)
            throws IOException {

        byte[] bytes = loadFile(file);
        byte[] encoded = Base64.getEncoder().encode(bytes);
        String encodedString = new String(encoded);

        return encodedString;
    }

    private byte[] loadFile(File file) throws IOException {
        byte[] bytes;
        try (InputStream is = new FileInputStream(file)) {
            long length = file.length();
            if (length > Integer.MAX_VALUE) {
                throw new IOException("File to large " + file.getName());
            }
            bytes = new byte[(int) length];
            int offset = 0;
            int numRead = 0;
            while (offset < bytes.length
                    && (numRead = is.read(bytes, offset, bytes.length - offset)) >= 0) {
                offset += numRead;
            }
            if (offset < bytes.length) {
                throw new IOException("Could not completely read file " + file.getName());
            }
        }
        return bytes;
    }