Páginas

sexta-feira, 13 de maio de 2016

[Jasper] - Habilitar Login de Senha Criptografada


Gerar KeyTool  para Servidor do Jasper:

keytool -genkey -alias jasper -keyalg RSA -keysize 1024 -keypass jasper123 -keystore keystore.jks -storepass jasper123

1.            Configure login encryption as described in the JasperReports Server Administrator Guide. Specify static key encryption by setting encryption.dynamic.key to false and configure the keystore as described.
2.            Once the server is restarted, log into the server to generate the static key.
3.            Open the following URL: http://example.com:8080/jasperserver/encrypt.html.
4.            Enter the password that you want to encrypt, for example joeuser, then click Encrypt. The script on this page will use the public key to encrypt the password.
5.            Paste the encrypted password into the URL instead of the plain text password (log out of the server to test this):
http://example.com:8080/jasperserver/flow.html?_flowId=homeFlow&j_userna...
6.            Use the URL with the encrypted password to share a report.

Diretório da Webapp Jasper Keystore:
C:\Jaspersoft\jasperreports-server-cp-5.6.1\apache-tomcat\webapps\jasperserver\WEB-INF\classes

Colocar o arquivo gerado pelo Keytool nesta pasta: keystore.jks

Diretório da Webapp Jasper Configuração:
C:\Jaspersoft\jasperreports-server-cp-5.6.1\apache-tomcat\webapps\jasperserver\WEB-INF\classes\esapi
Alterar o arquivo: security-config.properties

-- parâmetros alterados –
# Turns encryption of encryption.param's defined below on or off.
encryption.on=true

# ENCRYPTION CONFIGURATION
# encryption.dynamic.key=true means that the 1 key will be generated per every single request.
# If 'false', the key will be drawn from a keystore (see KEYSTORE group below)
encryption.dynamic.key=false
-------------------------------------------------------------------
# keystore.location can be on a classpath or an external-to-webapp file
keystore.location=keystore.jks
# password to verify keystore integrity
keystore.password=jasper123
# key pair alias used to retrieve correct key from keystore
keystore.key.alias=jasper
# keystore.key.alias's password
keystore.key.password=jasper123
-----------------------------------------------------------------------


terça-feira, 10 de maio de 2016

[Oracle] - Informações de Data e Hora


Neste artigo estarei disponibilizando uma consulta para facilitar a utilização de informações de Data e Hora no Oracle database:

SELECT extract(YEAR FROM SYSDATE) AS ano,
       extract(MONTH FROM SYSDATE) AS mes,
       extract(DAY FROM SYSDATE) AS dia,
       EXTRACT(HOUR FROM NUMTODSINTERVAL(SYSDATE - trunc(SYSDATE), 'DAY')) AS hora,
       extract(minute FROM systimestamp) AS minuto,
       trunc(extract(SECOND FROM systimestamp)) AS segundo,
       SYSDATE AS data_hora
FROM   dual;


Espero que essa dica, ajudem outros profissionais que trabalham com Oracle, facilitando o dia-a-dia.
Graças e Paz sejam com Todos.

segunda-feira, 16 de novembro de 2015

[Oracle] - Função para Retornar partes de um texto(string)


Bom pessoal, vou compartilhar uma função que retorna valores por parte de um texto especifico que estou utilizando, facilitando a utilização de particionamento de texto utilizando um carácter como ponto de particionamento:

CREATE OR REPLACE FUNCTION STRIPART(iTEXT VARCHAR2,
                     iCARA CHAR,
                     iINIC INTEGER,
                     iFINA INTEGER,
                     iTUDO INTEGER DEFAULT 1) RETURN VARCHAR2 AS
      vTEXT VARCHAR2(500) := iTEXT;
      vINIC INTEGER := 0;
      vFINA INTEGER := 0;
   BEGIN
      IF iINIC = 0
      THEN
         -- SE FOR ZERO É INICIO DE STRING SEMPRE
         vINIC := 1;
      ELSE
         -- PEGA A POSIÇÃO DO CARACTER iCARA
         vINIC := INSTR(iTEXT, iCARA, 1, iINIC) + 1;
      END IF;
      IF INSTR(iTEXT, iCARA, 1, iFINA) = 0
      THEN
         -- SE NAO ENCONTRAR O CARACTER FINAL PEGA TODA A STRING
         IF iTUDO = 1
         THEN
            vFINA := LENGTH(iTEXT);
         ELSE
            vFINA := 0;
         END IF;
      ELSE
         vFINA := INSTR(iTEXT, iCARA, 1, iFINA) - vINIC;
      END IF;
      vTEXT := SUBSTR(vTEXT, vINIC, vFINA);
      RETURN vTEXT;
   END;



quarta-feira, 4 de novembro de 2015

[Oracle] - Função para Remover caracteres especiais em Textos

Bom pessoal, a função abaixo remover caracteres especiais em textos no Oracle, facilitando o tratamento de dados do tipo texto, auxiliando em consultas e criação de índices.

CREATE OR REPLACE FUNCTION NORMALIZAR(str_in VARCHAR2) RETURN VARCHAR2 IS
   pos           NUMBER(10);
   chars_special VARCHAR2(255);
   chars_normal  VARCHAR2(255);
   str           VARCHAR2(255) := UPPER(str_in);
BEGIN
   chars_special := 'ÁÀÃÂÉÊÍÓÔÕÚÜÇ.-';
   chars_normal  := 'AAAAEEIOOOUUC  ';
   str           := TRIM(upper(str));
   pos           := length(chars_normal);
   WHILE pos > 0
   LOOP
      str := REPLACE(str,
                     substr(chars_special, pos, 1),
                     substr(chars_normal, pos, 1));
      pos := pos - 1;
   END LOOP;
   str := TRIM(str);
   WHILE regexp_like(str, ' {2,}')
   LOOP
      str := REPLACE(str, '  ', ' ');
   END LOOP;
   pos := length(str);
   WHILE pos > 0
   LOOP
      IF regexp_like(substr(str, pos, 1), '[^A-Z0-9Ç@._ +-]+')
      THEN
         str := concat(substr(str, 1, pos - 1), substr(str, pos + 1));
      END IF;
      pos := pos - 1;
   END LOOP;
   RETURN str;
END;
/


[Oracle] - Trabalhando com Listas Dinâmicas


Bom pessoal, vou informar abaixo a implementação de criação e utilização de listas dinâmicas no Oracle, validas para versões 10g, 11g e 12c.

CREATE OR REPLACE TYPE t_id IS TABLE OF VARCHAR2(32000);
/

CREATE OR REPLACE
FUNCTION fnc_gera_lista(lista       VARCHAR2,
                           delimitador VARCHAR2) RETURN t_id IS
      v_id t_id;
   BEGIN
      SELECT regexp_substr(REPLACE(lista, delimitador, ','),
                           '[^,]+',
                           1,
                           LEVEL) AS lista
      BULK   COLLECT
      INTO   v_id
      FROM   dual
      CONNECT BY regexp_substr(REPLACE(lista, delimitador, ','),
                               '[^,]+',
                               1,
                               LEVEL) IS NOT NULL;
      RETURN v_id;
END;
/

----------------------------------------------
--- EXEMPLO DE UTILIZAÇÃO: ---

-- LISTA DE DADOS NUMÉRICOS --
SELECT TO_NUMBER(COLUMN_VALUE) AS LISTA
        FROM   TABLE(FNC_GERA_LISTA('22;19;30;35;40;60;71;92;', ';')); 
-- LISTA DE DADOS ALPHANUMÉRICOS --
SELECT TO_CHAR(COLUMN_VALUE) AS LISTA
        FROM   TABLE(FNC_GERA_LISTA('a;B;C;d;E;F;g;H;', ';'));

-- LISTA DE DADOS ALPHANUMÉRICOS(DATAS) --
SELECT TO_CHAR(TO_DATE(COLUMN_VALUE ,'DD/MM/YYYY'), 'DD/MM/YYYY') AS LISTA
FROM   TABLE(FNC_GERA_LISTA('15/01/2011;11/12/2010;10/10/1999;16/08/1998;01/10/2003;12/12/2012;10/10/2010;11/11/2011;',
                            ';'));