Formulários para Consulta Apenas



Documentos relacionados
Novo Sistema Almoxarifado

Aula 11 Bibliotecas de função

ALTERAÇÕES NO SISTEMA ORION

MTUR Sistema FISCON. Manual do Usuário

WEBSITE LOJAS JOMÓVEIS

UNIVERSIDADE FEDERAL DE RONDÔNIA

Boletim Técnico. CAGED Portaria 1129/2014 MTE. Procedimento para Implementação. Procedimento para Utilização

Agenda. A interface de Agendamento é encontrada no Modulo Salão de Vendas Agendamento Controle de Agendamento, e será apresentada conforme figura 01.

Versões Todos os módulos devem ser atualizados para as versões a partir de 03 de outubro de 2013.

MANUAL DE INSTALAÇÃO

GUIA RÁPIDO DE CONFIGURAÇÃO PARA WINDOWS

Manual. Autorizador da UNIMED

MTUR Sistema FISCON. Manual do Usuário

Event Viewer - Criando um Custom View

MANUAL DOS GESTORES DAA

Tutorial de criação de um blog no Blogger

Manual do Novo Pátio. Revenda. Versão 2.0

SMART CONTROLE DO ESTOQUE DE GONDOLA

2º Passo Criar a conexão via ODBC (Object DataBase Conection)

Processo TCar Balanço Móbile

Processo de envio de de marketing

Sistema OnixNet / TrucksNet Contagem de Estoque pelas oficinas

SGCT - Sistema de Gerenciamento de Conferências Tecnológicas

FKcorreiosg2_cp1 - Complemento Transportadoras

Controle de Atendimento de Cobrança

Modelo de Negócios. TRABALHO REALIZADO POR: Antonio Gome // Jorge Teixeira

INTRODUÇÃO A LOGICA DE PROGRAMAÇÃO

1 Criando uma conta no EndNote

Sistema de Comercialização de Radiofármacos - Manual do Cliente

Channel. Colaboradores. Tutorial. Atualizado com a versão 3.9

Manual de Instalação

Código: Data: Revisão: Página: SUMÁRIO

Linguagem de. Aula 07. Profa Cristiane Koehler

Manual de Configuração

Dissídio Retroativo. Cálculos INSS, FGTS e geração da SEFIP

Um controlador de domínio baseado em Linux para laboratório vsphere - parte 4

Informática II INFORMÁTICA II

MANUAL DO USUÁRIO FINANCEIRO

MANUAL DE PROCEDIMENTOS

Vensis PCP. Rua Américo Vespúcio, 71 Porto Alegre / RS (51) comercial@vensis.com.br

Inscrição do Candidato ao Processo de Credenciamento

IBOConsole Instalação e Configuração. Ferramenta para gerenciamento do banco de dados.

Anexo V. Software de Registro Eletrônico em Saúde. Implantação em 2 (duas) Unidades de Saúde

COMO CONFIGURAR SUA(S) CONTA(S) NO MICROSOFT OFFICE OUTLOOK

Segue abaixo projeto para desenvolvimento de novo website para loja Virtual

Manual de Operação WEB SisAmil - Gestão

Acesso ao menu da presença de Carga Exportação WEB

Versão 14.0 Junho Contato: Representação mais detalhada da operação em cada estágio: 21 blocos

Tutorial Sistema Porto Sem Papel

Documentação de Versão Projeto Saúde e Segurança do Trabalho

FRWTC-220 DESENVOLVIMENTO DE APLICAÇÕES JAVA WEB

EIKON DOCUMENTS - ESPECIFICAÇÃO TÉCNICA

Orientações para a Escrituração Contábil Digital (Sped Contábil) Versão Soluções SPDATA

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Guia Sphinx: Instalação, Reposição e Renovação

com jcompany Extensions Capítulo Expandindo o Poder do jcompany Developer Suite - Entendendo as melhores práticas de customização

Interfaces com o Usuário. Capítulo. Entendendo o resultado produzido para UC002 Manter Funcionário!

BIRT Viewer. Capítulo. Entendendo o BIRT Viewer. - Visualizando o relatório em múltiplos formatos

Desenho centrado em utilização

MANUAL C R M ÍNDICE. Sobre o módulo de CRM Definindo a Campanha... 3

Academia FI Finanças

MTur Sistema Artistas do Turismo. Manual do Usuário

API de Integração E-Zoop Documentação de uso

RECOMENDAÇÕES GERAIS PARA AQUISIÇÃO DE IMAGENS RADIOLÓGICAS PARA CRIAÇÃO DE RÉPLICAS FETAIS ATRAVÉS DE IMPRESSÃO 3D

02 - Usando o SiteMaster - Informações importantes

DOCUMENTAÇÃO DA VERSÃO

Administração de Redes Servidores de Aplicação

Processador de Texto Funcionalidades Avançadas

PDF Livre com o Ghostscript

CURSO PREPARATÓRIO PARA CERTIFICAÇÃO

Diretor Conselheiro Técnico Consultores de serviços. Responsável pela Qualidade Gerente de Vendas Garantista

De fato, o caminho mais eficiente para se construir uma solução é não construí-la, reutilizando uma existente.

Manual de Procedimentos

PAULO ALVIM TIRANDO O MÁXIMO DO JAVA EE 6 OPEN SOURCE. 3ª edição. com jcompany Developer Suite

MANUAL DE PROCEDIMENTOS PARA REGISTO DE. Técnicos de Instalação e Manutenção de Edifícios e Sistemas. (TIMs)

CRONOGRAMA DELPHI para turmas Aproximadamente 84 horas - aulas de 2 horas

GESTÃO DE PROJETOS. Uma visão geral Baseado nas diretrizes do PMI

CRC-MG Central de Registro Civil de Minas Gerais Certidão Online - Serventia. Manual do usuário

Exercícios de Java Aula 17

CURSO. Curso CSS/Tableless. A estrutura de um documento HTML Criando primeiro documento

Design Patterns ABSTRACT FACTORY EMERSON BARROS DE MENESES

"Manter Agregação Mestre/Detalhe"

Integração Ayty CRM e Altitude

Modelagem, qualificação e distribuição em um padrão para geoinformações

Vensis Manutenção. Rua Américo Vespúcio, 71 Porto Alegre / RS (51) comercial@vensis.com.br

MANUAL DO ANIMAIL Terti Software

MANUAL DO USUÁRIO EVENTOS

MANUAL DO USUÁRIO ANTECEDENTES CRIMINAIS

Plano de aulas ª série 1ª aula 2ª etapa

Capítulo V. Técnicas de Análise de Circuitos

Manual de Instalação e Configuração

Os novos usos da tecnologia da informação nas empresas Sistemas de Informação

BRIEFING DO WEBSITE E SISTEMAS FEMURN A FEMURN. Página de conteúdo estático. Página de conteúdo estático. Página de conteúdo estático.

Proposta. Projeto: VENSSO. Data 25/05/2005. Andrade Lima Damires Fernandes Andrade Lima Damires Fernandes. Responsável. Autor (s)

Manual do Publicador. Wordpress FATEA Sistema de Gerenciamento de Conteúdo Web

FRWTC-200 INTRODUÇÃO JAVA SE

Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo.

Follow-Up Acompanhamento Eletrônico de Processos (versão 3.0) Manual do Sistema. 1. Como acessar o sistema Requisitos mínimos e compatibilidade

Manual do DEC Domicílio Eletrônico do Contribuinte

ÍNDICE 1 INTRODUÇÃO ACESSO ABERTURA DE PROTOCOLO CONSULTA DE PROTOCOLO PROTOCOLO PENDENTE CONFIRMAÇÃO DE RECEBIMENTO.

Transcrição:

6Dispnibilizand Frmuláris para Cnsulta Apenas Capítul 11 Implementand UC003 Cnsultar/Imprimir Ficha Funcinal!" - Entendend Md de Visualizaçã de Dcument A cnsulta e impressã da Ficha Funcinal, nss próxim desafi, pede basicamente a apresentaçã de tds s dads da Agregaçã de Funcinari (prtant, presentes n frmulári de manutençã que já fizems), mas desta vez em um frmat mais adequad para usuáris cnsultarem e imprimirem. Além diss, tems ainda algumas plíticas de segurança específicas. Veja pela Figura B11.1, que: Smente usuáris cm papel RH pdem manter funcináris. Smente usuáris cm papel RH e FlhaPagament pdem cnsultar Ficha Funcinal. Figura B11.1. Diagrama de Cass de Us da Versã 1.0 d RH Tut rial. Vams cmeçar buscand uma sluçã para a cnsulta em si. E reús deve ser nssa primeira pçã: Será que pdems reutilizar a manutençã de funcináris, para atender a este Cas de Us? Tds s dads estã presentes na manutençã. E mesm que smente 80% estivessem, digams, ainda assim cmpensaria reutilizar. Mas leiaute é um prblema ntóri: O us de Tab-Flder trna dcument visualmente bem segmentad para s usuáris, evitand rlagens de página, mas é ttalmente inadequad para impressã u cnsulta analítica, que exige a apresentaçã de tds s dads simultaneamente. Na sua frma de visualizaçã padrã, um frmulári de manutençã em Tab-Flder nã está em um leiaute adequad para cnsultas analíticas e impressã, muit embra já pssua mais difícil: s critéris de recuperaçã (seleçã) e cnteúd d dcument em si adequads e funcinais.

Capítul 11 Em vez de desenvlverms nvs frmuláris e Clabrações cm alt índice de redundância, pdems utilizar técnicas de gestã de leiautes para tentar reaprveitar códig. E jcmpany FS Framewrk já traz uma pçã autmatizada que irá ns auxiliar muit nestes cass: Md de Visualizaçã de Dcuments. Já fms apresentads a esta facilidade quand falams sbre Entrada de Dads em Lte n capítul anterir. Vams cnhecer agra algumas extensões que ns permitirã bter uma sluçã de cnsulta e impressã imediatamente funcinal para quaisquer frmuláris de manutençã sem esfrç. 1. Selecine um funcinári (acesse via Favrits d Navegadr!). 2. Em seguida, clique n btã Vis. Dcument. Um resultad cm da Figura B11.2 deverá aparecer. Figura B11.2. Md de Visualizaçã de Dcument. Neste frmat, nss frmulári se aprxima bastante d leiaute de um dcument de negóci típic, impress, pis alguns ajustes autmatizads já fram feits: #1. O Tab-Flder é substituíd pr tags HTML Fieldset u Table (dependend d estil d frmulári esclhid pel usuári, em Persnalizar Frmulári. Respectivamente, Elegante u Clássic ) e s cmpnentes d frmulári sã rganizads na vertical. #2. O btã de ajuda d calendári nã é mais exibid. #3. O btã de seleçã para vínculs nã é mais exibid. #4. O cmpnente cm btã para anexar arquiv também nã é exibid (smente nme d arquiv u imagem, se huver um anexad). #5. A imagem, títul e as caixas para marcaçã de exclusã de Detalhes também nã sã exibids. Pdems cnsiderar este cm um leiaute já aprpriad para cnsulta. Mas nã para a impressã! Se frms imprimir esta página pel cmand Arquiv -> Imprimir... (u File -> Print... ) d Navegadr, imprimiríams, junt cm frmulári, tp, a barra de ações cm btões e rdapé d leiaute principal. Além diss, as setas para seleçã das listas de valres (cmbs) também nã fazem sentid em uma impressã. - Leiaute para impressã A figura abaix mstra um leiaute cm tps e rdapés ajustads para impressã, sem barras de btões, cm camps de entrada transfrmads em texts.

Dispnibilizand Frmuláris para Cnsulta Apenas Figura B11.3. Frmulári visualizad cm a primeira pçã de impressã, cm leiaute aprpriad. #1. O tp, a barra de btões e s rdapés d leiaute riginal sã substituíds apenas pr um tp de impressã, que pde ser custmizad especializand-se a página /fcls/geralimpressa.xhtml. A imagem apresentada cm padrã é declarada ns metadads glbais e a mesma utilizada na janela de lgin (se nã infrmada, default é /plc/midia/lgin-lg-empresa.png ). #2. Funções Javascript d jcmpany alteram s camps de entrada, transfrmand-s em texts simples. #3. Smente s cmpnentes d tip Btões de Rádi e Caixa de Marcaçã nã sã mdificads, pis se cmprtam bem em impressã. #4. Os títuls também sfrem adequações incluind um refrç de negrit, que cmprta bem em tdas as peles padrões dispnibilizadas cm jcmpany. Antes de imprimir, usuári pde ainda alterar títul cm um simples clique n mesm, cnfrme ilustra a Figura B11.4. Figura B11.4. Alterand títul via DHTML cm um simples clique na área d tp. - Custmizand Cmprtaments em Md de Visualizaçã - Ediçã de Camada Cntrle IV Para maximizar nssas chances de reús, pdems exibir u mitir certas infrmações, smente em Md de Visualizaçã, simplesmente testand a presença d indicadr visualizadcumentplc em escp de requisiçã. A Figura B11.5 traz um exempl de teste para escnder a linha arquivs de currículs smente quand em Md de Visualizaçã :

Capítul 11 Figura B11.5. Testand Md de Visualizaçã em páginas. Mas e se quiserms acrescentar algum tip de infrmaçã que exija prgramaçã Java, smente em Md de Visualizaçã? Neste cas, bastaria especializarms métd de extensã editavisualizadcumentaps() em nssa classe de cntrle FuncinariMB utilizand um mecanism similar a que fizems para ajustar s arguments de idade para data, n últim Cas de Us. Vams fazer um exempl acrescentand últim pagament recebid, a lad d camp bservaçã. Smente cnseguirems finalizar esta prgramaçã quand implementarms Cas de Us de Cálcul da Flha de Pagament, já que nã tems saláris recebids ainda (smente s valres nminais de base). Mas já pdems adiantar a sua fôrma básica, que já atende a nss prpósit didátic. 1. Edite a classe FuncinariMB e implemente um métd cm da Figura B11.6. Figura B11.6. Métd de cntrle que executa prcessament smente em Md de Visualizaçã. #1. Métd de Extensã de "editdcumentview". #2. Teste d md. A presença d flag VISUALIZA_DOCUMENTO_PLC em request indica este md.. #3. O retrn "null" mantém usuári na mesma página (default). - Cnferind a implementaçã cm Tmcat Ht Deply Depuraçã e Lgging I Neste mment vams testar a implementaçã de nss métd de cntrle, mas desta vez sem realizar nenhuma tarefa de liberaçã Maven. Nte que XHTMLs, CSS, Javascript e mídias em geral pdem ser liberadas de frma instantânea pel jcmpany Ht Deply - mas e n cas da classe FuncinariMB? O plugin para Tmcat chamad Sysde, hmlgad pel jcmpany Cnfiguratin Management, é capaz de realizar liberações a quente para classes Java. Estas liberações sã um puc mais cmplexas

Dispnibilizand Frmuláris para Cnsulta Apenas d que uma cópia simples de um arquiv FuncinariM.class, d Eclipse para Tmcat. Elas exigem um recarregament desta classe pr parte d Class Lader, que é módul ds Applicatin Servers encarregad de instanciar e manter estratégias de caching para códigs interpretads pela JVM*. Prtant, pdems testar imediatamente implementações em classe Java, sem esperas, desde que tenham sid liberadas uma primeira vez via Maven. Em alterações de uma frma geral, que sã 95% das demandas, esta facilidade ns será bastante útil. 1. Chame a aplicaçã, edite um Funcinári e aperte btã de Visualizar Dcument. 2. Cnfira a cnsle, prcurand a mensagem de lg cm na Err! Fnte de referência nã encntrada.. Figura B11.7. Mensagem de depuraçã aparecend na Cnsle. Se a mensagem nã apareceu, pde haver algum prblema na cnfiguraçã d Surce Path para Tmcat Sysde. Vams cnferir. 3. Abra a lista de prjets Eclipse que estã marcads para recnheciment pel Tmcat Sysde, em Windws -> Shw View -> Servers e clique n arquiv "Tmcat". 4. Clique em "Open Launch Cnfiguratin" e irá abrir uma ppup, clique na aba Surce. 5. Cnfira se sua cnfiguraçã está cm a da Figura B11.8. * T ambém é ps s ível s e realizar c nfigurações d WT P 2.0 em prjets jcmpany para permitir H t Deply para utrs A pp Servers. M as es te tema s mente s erá abrdad em um próxim livr des ta s érie: V lume II T ópics A vançads.

Capítul 11 Figura B11.8. Prjets marcads n Tmcat Sysde para liberaçã imediata e recnheciment em depuraçã. Se ela estiver sem s prjets desejads, adicine-s através d btã "Add..." e reinicie Tmcat, para que passem a valer nas próximas mdificações. Se esta cnfiguraçã está crreta e a mensagem ainda nã apareceu, um utr pnt imprtante para cnferir sã s níveis de lgging d Lg4j. 6. Perceba na Err! Fnte de referência nã encntrada. que a classe de exibiçã da mensagem fi [AppMB], já que a classe de lgging utilizada está definida n ancestral de FuncinariActin, cm mstra a Figura B11.9. Figura B11.9. Classe de lg declarada n ancestral de Cntrle da Aplicaçã. N padrã que enviams cm lg.debug( mensagem ) a mensagem smente é exibida se nível de exibiçã para sua classe de lgging está cm DEBUG. Cnfira seu arquiv lg4j.prperties cm a Figura B11.10. O jcmpany Cnfiguratin Management pré-cnfigura este arquiv cm nível DEBUG para tdas as classes de lgging definidas n prjet crrente.

Dispnibilizand Frmuláris para Cnsulta Apenas Figura B11.10. Arquiv de def iniçã de dispsitivs, classes e níveis de lgging d Lg4j. #1. Arquiv padrã chamad lg4j.prperties. #2. A classe rtlgger é a ancestral geral, cm nível INFO. Mudá-la para DEBUG liga lgging de tdas as mensagens cntidas em classes cujs pactes nã estã declarads neste arquiv, mas que se encntram presentes na aplicaçã. #3. Para Hibernate, a classe de lg rg.hibernate.type é especialmente imprtante, pis se alterada para DEBUG exibe s arguments enviads em Prepared Statements (?) que aparecem ns SQLs! Pr ser muit útil, é pré-cnfigurada aqui pel jcmpany. #4. Classes d framewrk d jcmpany sã declaradas cm INFO. #5. Classes da aplicaçã sã declaradas cm DEBUG (d cntrári nã veríams a mensagem que fizems). #6. Definiçã da saída padrã para tdas as mensagens na Cnsle d Applicatin Server. - Custmizand em Md de Visualizaçã para Impressã Já vims cm é pssível se custmizar cnteúd apresentad em Md de Visualizaçã, que entra em cena quand usuári clica n btã Visualiza Dcument. É neste md que se deve acrescentar u remver infrmações, mtiv pel qual existem inclusive variáveis de cntrle e Template Methds dedicads a iss. Mas vejams agra um puc sbre a custmizaçã em Md de Visualizaçã para Impressã. Para ajustes, é precis que se cmpreenda sua característica especial de renderizaçã: a cntrári d Md de Visualizaçã, que exige uma nva ida a servidr para uma nva remntagem geral da página, a entrada em Md de Visualizaçã para Impressã nã renderiza tda a página nvamente, para evitar sbrecarga desnecessária. O mecanism utilizad é basicamente seguinte: 1. A página /f/fcls/geralimpressa.xhtml é chamada diretamente pr tds s frmuláris n jcmpany, pr mei de uma funçã Javascript que lhe passa, cm parâmetr, td cnteúd da página chamadra que se encntra dentr de duas marcações padrões (tkens). Esta marcações existem n template de frmulári genéric "/f/fcls/template/plcfrmsubtemplate.xhtml" (utilizad para tds s frmuláris) delineand trech significativ para impressã, cm abaix: <!-- INI --> // Crp d Frmulári Útil para Impressã <!-- FIM -->

Capítul 11 2. Prtant, quand usuári dispara a chamada para impressã, smente tp de impressã é baixad, pis é únic cnteúd relevante da página /f/fcls/geralimpressa.xhtml. Esta pequena página é ultra leve, realizand a inclusã d cnteúd d frmulári "chamadr", passad cm parâmetr, abaix d nv tp. 3. Em seguida, esta página chama as rtinas Javascript d jcmpany que realizam a trca ds cmpnentes de frmulári pr texts mais aprpriads para impressã. Este esquema é tremendamente timizad, cmparad a uma nva renderizaçã cmpleta, mas trazem algumas cnsequencias imprtantes: Custmizações mais prfundas (acréscims u retiradas de infrmações ds frmuláris) devem ser realizadas n Md de Visualizaçã (cm fizems n tópic anterir) e nã n de Md de Visualizaçã para Impressã, já que este nã realiza prcessament significativ n servidr. Prgramações n Md de Visualizaçã para Impressã sã pssíveis smente via Javascript. Em Md de Visualizaçã para Impressã, de uma frma geral, pdem ser utilizads s seguintes recurss para custmizaçã: Para alterar tp u leiaute cm um td: Especializar a página /src/main/webapp/fcls/geralimpressa.xhtml, salvand-a d prjet jcmpany_view para a Camada Bridge* u para um prjet específic. Para alterar estil CSS: Para alterações em estils que devam crrer smente neste md, deve-se utilizar a declaraçã CSS "bdy.plc-impressa" cm seletr, antes de qualquer utr estil. Ex.: "bdy.plc-impressa span.af_utputlabel {}" pssibilita alterar-se estil de rótuls smente em md impressã. - Reutilizand Frmuláris para Smente Cnsulta Já deu para perceber que, cm pequens ajustes, s recurss generalizads n jcmpany FS Framewrk ns livrarã de redundar muits elements de manutençã na nssa desejável cnsulta; e de um retrabalh que eliminarems pr inteir:mais um bcad de XHTMLs, declarações n facescnfig.xml, metadads etc. Mas ainda precisams respnder a uma questã: Cm trnar tud iss transparente para usuári final? Muits usuáris nã pderã inclusive manter funcináris, entã entrar através da pçã de manutençã para depis cmandarem cnsultas e impressões nã seria muit aprpriad. Mesm que impedíssems estes usuáris de alterar, escndend btões e impedind submissões ( POSTs ) de manutençã, a chamada via menu nã seria muit intuitiva. Prtant, cm pdems dispnibilizar este nss reús para atender à especificaçã d Cas de Us UC003 Cnsultar/Imprimir Ficha Funcinal! em um item de menu própri de md que abra diretamente a nssa Ficha d Funcinári? Vams respnder a esta questã simplesmente declarand um nv item de menu e chamand nssa mesma Clabraçã de Manutençã /funcinarimdt, passand alguns parâmetrs especiais na URL: 1. Edite arquiv geralmenu.xhtml (Cntrl+Shift+R) cpiand seguinte blc de códig: * A c amada Bridge fi intrduzida n c apítul 4, s bre arquitetura. É um módul c rprativ que atua em grande parte c m uma c amada (layer), s ervind para generalizações de arquitetura es pecíficas da empres a que c rrem após jc mpany e antes das aplic ações.

Dispnibilizand Frmuláris para Cnsulta Apenas Figura B11.11. Cpiand item de menu n editr 2. Em seguida, altere títul chave para menu.funcinari.cn.titul. Agra altere hiperlink de chamada, incluind sufix &amp;mfplc=t&amp;mcplc=v. Nte que trech em negrit acima é necessári pis querems que seja renderizad n Navegadr cm simplesmente &mfplc=v&mcplc=t. O us de & n lugar de simplesmente um & deve-se a fat de desejarms passar parâmetrs de URL que nã afetarã frmulári de seleçã, apenas d de manutençã, que será transfrmad n de cnsulta. Entã tken "&amp;" é separadr padrã para esta técnica. Figura B11.12. Alterand hiperlink para realizar chamada de f rmulári de manutençã em md cnsulta. mfplc=v (Md Frmulári = Visualiza). Abrir uma seleçã passand este parâmetr, u diretamente uma manutençã, faz cm que frmulári se abra em Md de Visualizaçã de Dcument. mcplc=t (Md Cmpnentes = Text). Abrir uma seleçã passand este parâmetr, u diretamente uma manutençã, faz cm que s cmpnentes d frmulári se abram cm cmpnentes cnvertids para texts. 3. Defina rótul para a entrada de menu em ApplicatinResurces_pt_BR.prperties. Lembrete: Nã se esqueça de tabular após infrmar text neste editr. Se acinar salvamente sem uma tabulaçã, últim text nã será gravad. Figura B11.13. Rótul para item de menu. 4. Salve s arquivs e faça uma nva liberaçã Rápida para Tmcat cm Reinici. 5. Entre na aplicaçã e clique em nss nv item de menu. A mesma página de seleçã de funcináris deve aparecer, cm na Figura B11.14.

Capítul 11 Figura B11.14. Nv item de menu, reutilizand a mesma seleçã d anterir. 6. Agra selecine em um bjet. Desta vez, ele já aparece apresentad em Md de Visualizaçã. Figura B11.15. Nv item de menu, reutilizand a mesma seleçã d anterir. #1. Página de cnsulta aparece lg na entrada da ediçã e dentr d leiaute nrmal. #2. A Barra de Ações é ajustada para cnsulta apenas, restand smente btã Abrir. #3. O leiaute d frmulári aparece em Md de Visualizaçã e cm camps em Md Text, uma mistura cm leiaute de impressã. Perceba que, diretamente neste md, eventuais prgramações de ajuste específicas já sã executadas evitand um clique adicinal para usuári. Cnstatams iss pela ausência d camp bservaçã, que ajustams para nã ser exibid em tópics anterires. Imprtante: Quand reutilizand uma mesma Clabraçã de Seleçã para dis bjetivs diferentes (em nss cas, para manutençã u para a cnsulta), certifique -se de que a chamada de menu para a

Dispnibilizand Frmuláris para Cnsulta Apenas seleçã da manutençã esteja passand cm parâmetr fwplc=<urlmanutençã> (Ex.: fwplc=funcinarimdt). - Garantind Acess Smente para Cnsulta Cntrle de Acess II Em nss exempl de cnsulta, se um usuári cm papel FlhaPagament quiser ver s camps de frmulári em md de manutençã, basta manipular a URL, retirand s parâmetrs especiais que clcams, para que cnsiga! Seria uma falha grsseira de segurança se estivéssems cnsiderand nssa implementaçã deste pnt de vista. Ajustes visuais em aplicações Web nã pdem ser cnsiderads cm segurança. Cnsidere-s sempre cm um cnfrt visual bem desejável, mas implemente alguma verificaçã de segurança efetiva, necessariamente n servidr. Vams agra cuidar da segurança cmeçand pr utilizar que há dispnível n padrã Java EE. E este padrã ferece recurss declarativs e suficientes para se restringir direits de gravaçã e/u cnsulta para determinads papéis em determinadas URLs: 1. Edite arquiv web.xml e clique direit em Security Rles, cm na Figura B11.16. Figura B11.16. Def inind Atres UML cm Rles Java EE n web.xml. 2. Cadastre uma entrada em rle-name para cada Atr encntrad n diagrama da Figura B11.17.

Capítul 11 Figura B11.17. Atres d negóci em amarel. Membrs e AreaTecnica sã utilizads pel jcmpany. 3. Em seguida, defina uma primeira restriçã, que irá impedir acess de gravaçã em funcináris, chamand-a de Funcinári Smente Cnsulta. Para tant, clique direit acima de Security Cnstraints e adicine um Web Resurce Cllectin cntend /f/n/funcinarimdt cm URL pattern e GET cm prtcl HTTP. Em seguida, adicine a rle FlhaPagament a esta restriçã. Cnfira resultad cm a Figura B11.18. Figura B11.18. Restriçã para acess de smente cnsulta para usuáris cm rle FlhaPagament #1. Nme da restriçã. #2. Nme ds recurss (cnjunts de URLs, basicamente) a serem prtegids. #3. Padrões de URL que serã prtegidas, pdend ter * cm cringa. Em nss cas, tems smente uma URL (apesar de chamada de dis mds diferentes). #4. Prtcl HTTP permitind smente GET, utilizad para ediçã de dcuments.

Dispnibilizand Frmuláris para Cnsulta Apenas #5. Lista de papéis (rles) de usuáris que pdem utilizar s recurss prtegids. N nss cas, smente FlhaPagament. #6. Camp pcinal para inserir uma descriçã da "Web Resurce Cllectin". 4. Defina a restriçã para permitir manutençã smente para usuáris cm papel RH de uma frma similar, mas agra sem incluir nenhum prtcl definid. Deste md, a restriçã vale tant para GET quant para POST. Nvamente: Em Clabrações de Manutençã, jcmpany utiliza GET para a ediçã e POST para gravações. Figura B11.19. Restriçã para acess de cnsulta e manutençã (tds s cmands HTTP) rle RH. 5. Faça, cm exercíci, a definiçã da segurança para s dis primeirs Cass de Us que desenvlvems, restrits apenas a papel Administradr. 6. Para teste, precisarems criar nvs usuáris, papéis (rles) e assciações aprpriadas. Para iss, edite arquiv [jcmpany]/servers/tmcat/cnf/tmcat-users.xml e altere-, cnfrme a Figura B11.20. Imprtante: O jcmpany Cnfiguratin Management pré-cnfigura n arquiv web.xml uma primeira restriçã geral que exige n mínim papel de Membrs para qualquer usuári que queira acessar qualquer página da aplicaçã. E também uma segunda que exige papel AreaTecnica para usuáris que terã acess às funções d Menu Área de TI. Prtant, a mens que se queira mdificar esta plítica, deve-se também atribuir pel mens primeir papel as nvs usuáris de teste. Figura B11.20. Cadastrament de usuáris, papéis (rles) e assciaçã ent re ambs n arquiv Realm de teste. 7. Reinicie Tmcat para que s nvs usuáris e papéis sejam recnhecids.

Capítul 11 8. Faça, entã, testes cm tdas as variações. Experimente autenticar cm ja", que nã pssui rle RH, e acessar a manutençã. Perceba que ainda assim será pssível a ediçã e cnsulta (já que sua rle FlhaPagament lhe dá acess de GET para cnsulta). Prém, a apertar Nv, Gravar, Excluir u qualquer utra açã que envie cmands de POST para a URL /f/n/funcinarimdt, uma mensagem padrã para restriçã de segurança aparece refletind a prteçã. - Persnalizand Menus cm Declarações Facelets Ediçã de Camada Visã IV Cm resultad da segurança que implementams n tópic anterir, invertems nssa situaçã: agra tems plíticas de segurança mais refinadas d que s ajustes de cnfrt visual. Usuáris pdem ver btões e itens de menu, mas disparam estes events, recebem mensagens de acess negad. Cm já discutims, a mairia das empresas exige que haja alguma persnalizaçã da Interface cm Usuári, cndizente cm a segurança. Ist significa smente apresentar a usuári aqueles itens de menu, abas, btões e camps de frmulári, em cnfrmidade cm seu perfil de acess. É uma precupaçã que, na verdade, serve a dis prpósits: de facilitar a vida d usuári, que passa a nã ver que nã tem direit de acessar; e de refrçar ainda mais a segurança, nã dand infrmações iniciais que pssam despertar iniciativas ilegais de invasã. N nss cas presente, a primeira necessidade óbvia é escnder itens de menu de usuáris que nã pssuem direits de acess a eles. Vams fazê-l aprveitand a ediçã d menu para melhrar a sua rganizaçã geral. Vams cmeçar criand mais blcs de menu de primeir nível, separand as pções de manutençã da estrutura rganizacinal das que lidam cm funcináris. Iss irá ns facilitar, pr exempl, a aplicar restrições de segurança a primeir blc, que smente pde ser utilizad pr usuáris cm papel Administradr (veja Figura B11.21). 1. Edite arquiv geralmenu.xhtml. 2. Primeiramente, vams fazer uma cópia d primeir blc d menu. Selecine blc app.m.inicial, para em seguida cpiá-l. Figura B11.21. Cpiand blc de menu. 3. Utilize paste para clá-l abaix d blc cpiad. 4. A clar, denmine nv blc de app.m.func e, em seguida, retire s itens de chamada indesejads em cada um ds dis blcs resultantes, cnfrme ilustra a Figura B11.22.

Dispnibilizand Frmuláris para Cnsulta Apenas Figura B11.22. Resultad da clnagem de blc de menu já cm alterações. #1. Exclusã de itens de funcinári d app.m.inicial. #2. Alteraçã d títul (rótul que aparecerá) para app.m.func. #3. Exclusã de itens de unidade rganizacinal d app.m.func. Vams agra mdificar texts I18n. O rótul de app.m.inicial pde ser mdificad de Menu Inicial para Unid. Organizacinal. E a nva entrada para app.m.func criada cm Funcinári. Edite arquiv ApplicatinResurces_pt_BR.prperties (Cntrl+Shift+R). Após a abertura d editr, n camp name busque pr app.m.inicial. Altere rótul para Unid. Organizacinal. Em seguida, clique n btã Add para adicinar uma linha e acrescente nv rótul, cnferind cm a Figura B11.23. Figura B11.23. Mensagens para a nva rganizaçã d menu. 5. Agra cm uma melhr rerganizaçã funcinal d menu, pdems implementar facilmente nssa primeira restriçã de cnfrt visual para permitir acess a primeir blc de funções de Estrutura Organizacinal, smente a usuáris cm papel Administradr. Para tant, basta usar uma funçã Facelets especial d jcmpany, chamada "plct:execonearg". Esta funçã permite que se chame métds de qualquer bjet dispnível passand até 1 (um) argument, de dentr de arquivs XHTML/Facelets. Ela é suficiente para chamarms teste padrã Java EE para "rles" d usuári crrente, que em uma classe Java seria "request.isuserinrle("<role-x>");". E pde ser utilizada para qualquer cmpnente visual em diversas granularidades, seja em nível de blcs de menu, seja para cada item. Edite a tag de menu "<li>" d app.m.inicial e infrme a prpriedade "style" cm códig abaix: <li style="#{plct:execonearg(request,'isuserinrle','administradr')?'':'display:nne;'}">

Capítul 11 Nte que há um teste (finalizad pr "?") que, se avaliad cm "true" nã irá renderizar nada n "style", deixand que trech seja apresentad. Se fr "false", prém, ele renderiza "display:nne;" n HTML, que trna element e td seu cnteúd invisível. O mesm racicíni pde também ser utilizad para item de menu de manutençã de funcinári, que smente deve ser exibid para usuári cm rle "RH". Pr fim, tud iss smente irá funcinar após declararms us da bibliteca "plct" n dcument Facelets. Veja abaix as três mdificações: Figura B11.24. Opções diversas para itens de menu, inclusive segurança para blcs. #1. Declaraçã para us de funções especiais d jcmpany, através d prefix "plct". #2. Teste que irá exibir u nã a primeira seçã de menu (Unidade Organizacinal) em cnfrmidade cm as rles d usuári. N cas, smente se ele tiver rle "Administradr". #3. Teste adicinal que irá exibir u nã a pçã de menu para ediçã de funcinári, smente send permitida para usuáris cm rle "RH". - Testand Cnfrt Visual assciad à Segurança Cm a finalizaçã da prgramaçã, vams liberar mais uma vez a aplicaçã para testar se as plíticas de segurança e cnfrt visual estã cerentes. 1. Libere utilizand Liberaçã Rápida para Tmcat cm Reinici. 2. Entre cm usuári maria, que nã tem papel RH, mas tem de Administradr. O resultad esperad deve ser da Figura B11.25. Figura B11.25. Acess para perf il de maria. Perceba que ela ainda vê blc de menu Funcináris, mas nã tem acess visual à pçã de manutençã de funcináris, que é um cnfrt visual.

Mas que acntece se ela tenta furar a segurança? Dispnibilizand Frmuláris para Cnsulta Apenas 3. Cnsulte um funcinári e, em seguida, altere a URL da ediçã, retirand s parâmetrs que frçam a exibiçã em cnsulta. Ou seja, deixand smente uma URL cm.../f/n/funcinarimdt?chplc=[object-id]. Perceba que este funcinári aparece editad para manutençã, tericamente furand a segurança. 4. Tente agra gravar registr. Se a plítica de segurança fi definida crretamente n arquiv web.xml, aparecerá a mensagem da página /plc/errs/err403.html, exibida na Figura B11.26. Esta página é registrada cm padrã, também n arquiv web.xml, para exibir mensagens de segurança. Neste cas, a explicaçã mais técnica é Maria tentu dar um POST nã permitid para seu perfil, na URL /f/n/funcinarimdt. Figura B11.26. Mensagem padrã para err http 403 para segurança averiguada n servidr. Dica: Para se custmizar esta página de err, bem cm tdas as páginas para errs padrões HTTP*, deve-se alterar registr das páginas de err n web.xml apntand para uma específica. 5. Entre agra cm usuári jse, que tem papel RH. O resultad esperad é da Figura B11.27. Ele nã tem acess visual à barra de menu de unidade rganizacinal, mas tem acess às funções de funcinári. Figura B11.27. Acess para perf il de jse, mais restrit que de maria. 6. Entre agra cm ja, que tem papel FlhaPagament mas nã tem RH u Administradr. O acess visual é mais restrit. Até agra, a única funçã que este perfil pde executar na aplicaçã é cnsultar funcináris. * N te que númer 4 0 3 é um padrã http para errs de s eguranç a. E xistem váris utrs c ódigs para variadas situações e cada um deles pde ps suir uma página própria de mens agem padrã.

Capítul 11 Figura B11.28. Acess para perf il de ja, mais restrit de tds. Segurança e Cnfrt Visual integrads cm jcmpany Security! - A prblemática da segurança em aplicações Web Discutims, neste capítul, a imprtância de se manter em sintnia as declarações e prgramações de segurança cm as custmizações de cnfrt visual. Praticams também algumas técnicas que ns permitiram atingir este bjetiv. Prém, apesar da aparência simples em um pequen exempl, trabalh para se manter estas duas dimensões de esfrç, em tdas as plíticas que surgem em aplicações reais, nã cstuma ser nada desprezível. Além diss, estas aplicações pdem exigir: Us de certificads digitais de cliente para determinads perfis de usuári que devem apresentáls para perar determinadas pções mais críticas. Manutenções frequentes de plíticas de segurança, incluind a necessidade da criaçã de nvs papéis (Rles) e nvas plíticas de restriçã. Realizar nvas alterações n arquiv web.xml, nvas mntagens e liberaçã da aplicaçã tda vez que uma plítica é alterada está fra de questã... Mas seria necessári, n esquema utilizad até aqui*! Manutençã de plíticas de segurança pr usuáris finais que devem pssuir uma IDE de Administraçã já que nã é viável alterarem plíticas via edições d web.xml. Prteçã cntra hackers (n pir sentid), pribind prgramações para implementaçã de plíticas de segurança que pr si, já é um imprtante flanc de segurança. - Utilizand jcmpany Security O jcmpany Suite, apresentad n capítul 1, traz diverss utrs prduts que sã ferecids em separad d jcmpany Develper Suite, mas que funcinam de frma imediatamente integrada. O jcmpany Security é um deles. Cm jcmpany Security (também chamad de jsecurity), tds s passs de prgramações e declarações que fizems neste capítul, tant para a segurança efetiva, via cntrle de acess n servidr, quant para cnfrt visual, se trnam desnecessáris! O jsecurity dispnibiliza uma aplicaçã de administraçã de segurança, amigável para us pr usuáris finais d negóci, que s permite criar papéis dinamicamente, além de definir e alterar plíticas de acess - smente nas aplicações sb sua respnsabilidade. Iss tud sem que haja necessidade de intervenções de prgramaçã e, prtant, expsiçã de plíticas de segurança a prfissinais de tecnlgia. As restrições dinâmicas pdem chegar até nível de camp de frmulári (Ex.: escnder camp X para usuáris de perfil Y), pedir e gerenciar certificads digitais de cliente, dentre utras sfisticações. * M es m que alguma implementaçã de A pp Server permita a mdificaçã das declarações de s egurança d web.xml em temp de exec uçã, s em exigir remntagem e reliberaçã (u s eja, a quente ), nã é razável que prfis s inais da área téc nica tmem c iênc ia destas mdificações de plítica. E es tas pç ões via App Server nunc a s ã amigáveis s uficiente para que s devids res pns áveis pela s egurança ps sam perá-las.

Dispnibilizand Frmuláris para Cnsulta Apenas Além diss, uma única restriçã de segurança cadastrada via jsecurity resulta tant n registr dinâmic da segurança em si (utilizand padrã JAAS), cm também em custmizações dinâmicas de GUI (via integraçã cm leiautes e cmpnentes visuais d jcmpany)! Cm iss, se ganha duplamente: em prdutividade e também em qualidade da segurança na medida em que errs ptencia is relacinads a esta sincrnia sã eliminads. O jcmpany Security é um prdut cmercializad em mdel Open Surce Gerenciad, cm jcmpany Develper Suite. Se nã fr de interesse utilizá-l, deve-se cnsiderar desenvlviment de alguma aplicaçã de administraçã de segurança similar, especialmente quand se trabalha cm desenvlviment crprativ, em larga escala.

Sumári Neste capítul encerrams desenvlviment d Cas de Us UC003 C nsultar/imprimir Ficha Funcinal, reutilizand ttalmente s nsss artefats desenvlvids para manutençã de funcináris através da utilizaçã de pções dinâmicas d jcmpany FS Framewrk, que permitem variações dinâmicas em leiautes e frmats de camps. Vims cm é pssível se custmizar detalhes crprativs ds leiautes de impressã, tais cm padrã lgtip e cabeçalh padrã para impressões; e também cm custmizar detalhes necessáris em cada Cas de Us, tais cm apresentar u mitir infrmações, n md e cnsulta u impressã. Pela primeira vez implementams regras de cntrle de acess de acrd cm padrã Java EE, basead em declarações de plíticas de segurança definidas n arquiv web.xml. Cmplementams esta implementaçã cm custmizações na parte de Interface cm Usuári, escndend u exibind itens de menu e/u de frmuláris, em cnfrmidade cm as plíticas de segurança estabelecidas. Um desenvlvedr experiente deve levar em trn de 2 (duas) hras para prduzir uma cnsulta de frmulári, cm qualidade para impressã inclusive, a partir de uma manutençã já existente, cm pequenas custmizações cm fizems. N próxim capítul d módul C irems realizar uma manutençã típica, pela primeira vez, e intrduçã s Cass de Us Padrões de nível secundári.