Instruções de autenticação nos webservices
Deverá ser solicitado o usuário e o código interno do webservice para o administrador nacional do SEEU. A senha é dinâmica e muda diariamente, sendo gerada a partir de um código interno, que deve ser mantido sob sigilo. O código interno deverá ser incluído como parâmetro no código abaixo, que gera a senha dinâmica. Sendo assim, ele deve estar na chamada do webservice.
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class GerarSenha {
public static void main(String[] args) {
String codigoSistema;
String senhaDeHoje;
codigoSistema = "999999";
senhaDeHoje = gerarSenha(codigoSistema);
System.out.printf("%s\n", senhaDeHoje);
}
public static String gerarSenha(String codigoSistema) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String ddMM = "";
Calendar dataBase = Calendar.getInstance();
ddMM = sdf.format(dataBase.getTime());
String password = codigoSistema + ddMM;
MessageDigest md = null;
try {
md = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
byte[] hashInBytes = md.digest(password.getBytes(StandardCharsets.UTF_8));
StringBuilder sb = new StringBuilder();
for (byte b : hashInBytes) {
sb.append(String.format("%02x", b));
}
return sb.toString();
}
}
<?php
// Exemplo de chamada
echo gerarSenha('999999');
// função para gerar a senha [$codigoSistema deve ser solicitado ao CNJ]
function gerarSenha($codigoSistema){
$tz = new DateTimeZone('America/Sao_Paulo');
$retorno = '';
$sdf = date_format(new DateTime("now", $tz),'Ymd');
$password = $codigoSistema . $sdf;
$hash = md5($password, true);
for($i=0; $i<strlen($hash); $i++) {
$tokenDiario .= sprintf('%02x',ord($hash[$i]));
}
return $tokenDiario;
}