use of com.crivano.swaggerservlet.PresentableException in project balcaovirtual by trf2-jus-br.
the class ProcessoValidarGet method run.
@Override
public void run(Request req, Response resp, BalcaojusContext ctx) throws Exception {
boolean fPorCaptcha = false;
if (req.captcha != null) {
if (!Utils.verifyCaptcha(req.captcha))
throw new PresentableUnloggedException("Token de reCaptcha inválido");
fPorCaptcha = true;
} else if (isValidToken(req.token, req.numero)) {
resp.token = req.token;
} else
AutenticarPost.assertAuthorization();
String usuario = null;
try {
Usuario u = AutenticarPost.assertUsuario();
usuario = u.usuario;
} catch (Exception e) {
usuario = BalcaojusServlet.INSTANCE.getProperty("public.username");
}
String[] numeros = (req.numero != null && req.numero.trim() != "") ? req.numero.split(",") : null;
if (numeros != null && numeros.length > 100)
throw new PresentableException("Não é permitido validar mais de 100 números de processos em uma única operação");
validar(usuario, numeros, req.nome, req.tipodedocumento, req.documento, req.oab, resp);
if (fPorCaptcha && resp.list != null && resp.list.size() > 0) {
StringBuilder sb = new StringBuilder();
for (ProcessoValido p : resp.list) {
if (sb.length() > 0)
sb.append(",");
sb.append(p.numero);
}
resp.token = jwt(sb.toString());
}
}
use of com.crivano.swaggerservlet.PresentableException in project balcaovirtual by trf2-jus-br.
the class ProcessoValidarGet method validar.
public static void validar(String usuario, String[] numeros, String nome, String tipoDeDocumento, String documento, String oab, IProcessoValidarGet.Response resp) throws Exception, PresentableException {
Map<String, SwaggerCallParameters> mapp = new HashMap<>();
int timeout;
String url;
String docvalido;
String context;
if (documento != null) {
docvalido = documento.replaceAll("[^0-9]", "");
if (docvalido.isEmpty())
throw new PresentableException("Termo de busca inválido !! " + documento);
url = "/processo/consultar?documento=" + URLEncoder.encode(docvalido, "UTF-8").replace("+", "%20");
context = " - consulta processo por cpf/cnpj da parte";
timeout = 30000;
} else if (nome != null) {
url = "/processo/consultar?nomeparte=" + URLEncoder.encode(nome.toUpperCase(), "UTF-8").replace("+", "%20");
context = " - consulta processo por nome da parte";
timeout = 30000;
} else if (oab != null) {
url = "/processo/consultar?oab=" + URLEncoder.encode(oab.toUpperCase(), "UTF-8").replace("+", "%20");
context = " - consulta processo por oab";
timeout = 30000;
} else {
IUsuarioUsernameProcessoNumerosGet.Request q = new IUsuarioUsernameProcessoNumerosGet.Request();
q.numeros = StringUtils.join(numeros, ",");
url = "/processo/" + q.numeros;
context = " - validar número de processo";
timeout = 15000;
}
url = url.replace("_", "%20");
for (String system : Utils.getSystems()) {
mapp.put(system, new SwaggerCallParameters(system + context, Utils.getApiPassword(system), "GET", Utils.getApiUrl(system) + "/usuario/" + usuario + url, null, IUsuarioUsernameProcessoNumerosGet.Response.class));
}
SwaggerMultipleCallResult mcr = SwaggerCall.callMultiple(mapp, timeout);
resp.status = Utils.getStatus(mcr);
// resp.list = new ArrayList<>();
Map<String, ProcessoValido> processosRecebidos = new HashMap<>();
ProcessoValido proc;
// TODO: Falta lógica para escolher o mais importante dos resultados.
for (String system : mcr.responses.keySet()) {
IUsuarioUsernameProcessoNumerosGet.Response rl = (IUsuarioUsernameProcessoNumerosGet.Response) mcr.responses.get(system);
if (rl.list == null || rl.list.size() == 0)
continue;
for (Processo r : rl.list) {
if (r.numero == null || r.perdecompetencia)
continue;
if (processosRecebidos.containsKey(r.numero)) {
// considera o processo no Eproc ao decidir competência
proc = processosRecebidos.get(r.numero);
if (proc.sistema.contains("apolo") && system.contains("eproc")) {
processosRecebidos.remove(r.numero);
} else if (proc.sistema.contains("eproc") && system.contains("apolo"))
continue;
else
throw new PresentableException("Não foi possível identificar qual sistema tem competência para o processo: " + r.numero, mcr.status);
}
ProcessoValido pv = new ProcessoValido();
pv.numero = r.numero;
pv.sistema = system;
pv.orgao = r.orgao;
pv.unidade = r.unidade != null ? r.unidade.trim() : null;
pv.localnaunidade = r.localNaUnidade;
pv.segredodejustica = r.segredodejustica;
pv.segredodejusticadesistema = r.segredodejusticadesistema;
pv.segredodejusticaabsoluto = r.segredodejusticaabsoluto;
pv.usuarioautorizado = r.usuarioautorizado;
pv.digital = r.eletronico;
pv.sentenciado = r.sentenciado;
pv.baixado = r.baixado;
pv.cdas = r.cdas;
if (r.dataultimomovimento != null)
pv.dataultimomovimento = Utils.parsearDataHoraMinuto(r.dataultimomovimento);
pv.autor = Texto.maiusculasEMinusculas(r.autor);
pv.reu = Texto.maiusculasEMinusculas(r.reu);
processosRecebidos.put(pv.numero, pv);
}
}
resp.list.addAll(processosRecebidos.values());
resp.datavalidacao = new Date();
}
use of com.crivano.swaggerservlet.PresentableException in project balcaovirtual by trf2-jus-br.
the class Utils method verifyCaptcha.
// Se houver erro de SSL, pode ser necessário instalar o certificado do
// Google na cadeia de certificados do Java, seguindo o exemplo abaixo:
//
// c:\OpenSSL-Win64\bin>openssl s_client -connect www.google.com:443 < NUL >
// google.crt
//
// e:\Desenvolvimento\jre1.8.0_162\bin>keytool -import -alias
// www.google.com -keystore ../lib/security/cacerts -file
// c:\OpenSSL-Win64\bin\google.crt
//
public static boolean verifyCaptcha(String token) throws Exception {
if (token == null)
throw new PresentableException("Captcha não pode ser nulo");
VerifyCaptchaRequest q = new VerifyCaptchaRequest();
q.secret = BalcaojusServlet.INSTANCE.getProperty("recaptcha.secret.key");
q.response = token;
q.remoteip = SwaggerServlet.getHttpServletRequest().getRemoteAddr();
VerifyCaptchaResponse r = SwaggerCall.doHTTP(null, "https://www.google.com/recaptcha/api/siteverify", "GET", q, VerifyCaptchaResponse.class);
return r.success;
}
use of com.crivano.swaggerservlet.PresentableException in project balcaovirtual by trf2-jus-br.
the class ProcessoNumeroInformacoesAdicionaisGet method run.
@Override
public void run(Request req, Response resp, BalcaojusContext ctx) throws Exception {
if (!req.sistema.contains(".eproc"))
return;
Usuario u = BalcaojusServlet.getPrincipal();
if (u.usuarios == null)
throw new PresentableException("Usuário não possui identificador e unidade");
UsuarioDetalhe ud = u.usuarios.get(req.sistema.toLowerCase());
if (!u.isInterno() && "prod".equals(BalcaojusServlet.INSTANCE.getProperty("env")) && (u.email == null || !u.email.endsWith("@pgfn.gov.br")))
return;
Future<SwaggerAsyncResponse<IUsuarioUsernameProcessoNumeroInformacoesAdicionaisGet.Response>> future = SwaggerCall.callAsync("obter informacoes adicionais", Utils.getApiPassword(req.sistema), "GET", Utils.getApiUrl(req.sistema) + "/usuario/" + u.usuario + "/processo/" + req.numero + "/informacoes-adicionais", null, IUsuarioUsernameProcessoNumeroInformacoesAdicionaisGet.Response.class);
SwaggerAsyncResponse<IUsuarioUsernameProcessoNumeroInformacoesAdicionaisGet.Response> sar = future.get();
if (sar.getException() != null)
throw sar.getException();
IUsuarioUsernameProcessoNumeroInformacoesAdicionaisGet.Response r = (IUsuarioUsernameProcessoNumeroInformacoesAdicionaisGet.Response) sar.getResp();
resp.cdas = new ArrayList<>();
if (r.cdas != null) {
for (br.jus.trf2.sistemaprocessual.ISistemaProcessual.CDA cda : r.cdas) {
br.jus.trf2.balcaojus.IBalcaojus.CDA o = new br.jus.trf2.balcaojus.IBalcaojus.CDA();
o.numero = cda.numero;
o.processoadministrativo = cda.processoadministrativo;
o.status = cda.status;
o.grupo = cda.grupo;
o.codigotributo = cda.codigotributo;
o.tributo = cda.tributo;
o.valor = cda.valor;
o.valorufir = cda.valorufir;
o.dataorigem = cda.dataorigem;
o.datainclusao = cda.datainclusao;
resp.cdas.add(o);
}
}
}
use of com.crivano.swaggerservlet.PresentableException in project balcaovirtual by trf2-jus-br.
the class ProcessoNumeroNotaGet method run.
@Override
public void run(Request req, Response resp, BalcaojusContext ctx) throws Exception {
Usuario u = BalcaojusServlet.getPrincipal();
if (u.usuarios == null)
throw new PresentableException("Usuário não possui identificador e unidade");
UsuarioDetalhe ud = u.usuarios.get(req.sistema.toLowerCase());
if (ud == null)
throw new PresentableUnloggedException("disabled");
resp.list = new ArrayList<>();
try (Dao dao = new Dao()) {
Processo p = dao.obtemProcesso(req.numero, req.sistema, false);
if (p == null)
return;
List<Nota> l = dao.obtemNotas(p, ud.id, ud.codunidade);
if (l == null)
return;
for (Nota nota : l) {
br.jus.trf2.balcaojus.IBalcaojus.Nota m = new br.jus.trf2.balcaojus.IBalcaojus.Nota();
m.idnota = Long.toString(nota.getNotaId());
m.texto = nota.getNotaTxConteudo();
m.pessoal = nota.getNotaLgPessoal();
m.nomeusuario = nota.getNotaNmUsu();
m.dataalteracao = nota.getNotaDfAlteracao();
resp.list.add(m);
}
}
}
Aggregations