Professional Documents
Culture Documents
Este post tambm est disponvel para assinantes da Java Magazine DIGITAL
ou para quem possui rditos DevMedia!
lique aqui para saber "omo a"essar este post
"#digo $onte post $avorito "omentrios
Java Magazine %%& ' (ndi"e
CONTEDO REVISTAS CURSOS DEVWARE MVP LOGIN
Anuncie | Loja | Publique | Assine | Fale conosco
Hospedagem web por Porta 80 Web Todos os Direitos Reservados a
DevMedia
26.515 pessoas curtiram DevMedia.
Plug-in social do Facebook
Curtir Curtir
JSF: Controle de Sesses e Controle de Acesso - Revista Java Magazin... http://www.devmedia.com.br/jsf-controle-de-sessoes-e-controle-de-ace...
1 de 11 30/07/2014 01:44 PM
Gostei )%*+ )*+
Artigo do tipo Tutorial
,e"ursos espe"iais neste artigo-
Artigo no estilo .olu/0o!
Sesses e Controle de Acesso
1este artigo2 veremos "omo implementar dois re"ursos bastante importantes em solu/3es
4eb baseadas em Java EE e2 mais espe"i$i"amente2 em Java.erver 5a"es- o "ontrole de
sess3es e o "ontrole de a"esso a re"ursos e $un"ionalidades de a"ordo "om o nvel de
permiss0o do usurio logado! 6ara isso2 tomaremos "omo base uma apli"a/0o "u7o tema $oi
es"ol8ido a dedo2 aproveitando esta po"a de alta temporada em pleno ver0o brasileiro- um
servi/o de aluguel de "8als em 9batuba2 litoral norte do estado de .0o 6aulo!
Em que situao o tema til
Este tema ser :til sempre que o leitor2 pro$issional de arquitetura e;ou desenvolvimento de
so$t4are2 optar pela plata$orma Java EE2 pela espe"i$i"a/0o Java.erver 5a"es e por sua
implementa/0o mais popular2 o 6rime5a"es2 para a "onstru/0o de apli"a/3es 4eb que
envolvem o a"esso de m:ltiplos usurios "ontrolados atravs de sess3es e "om variados
nveis de a"esso <s $un"ionalidades disponveis!
Apli"a/3es 4eb s0o "onstitudas2 normalmente2 de re"ursos e $un"ionalidades p:bli"os2
a"essveis a toda pessoa em "ontato "om a Internet2 e outros protegidos por nveis
espe"$i"os de a"esso! = muito "omum vermos2 em portais pela 4eb2 reas restritas para
"andidatos em treinamento2 $un"ionrios2 pro$essores2 administradores de sistemas2 e>ibidas
apenas mediante o $orne"imento de "reden"iais "om nvel de a"esso "ompatvel "om aquele
previamente "adastrado em sistemas de in$orma/0o rela"ionados! ?utro "omportamento
muito "omum em sistemas 4eb a e>ibi/0o de determinadas in$orma/3es sobre as quais o
leque de opera/3es permitidas varia de a"ordo "om o tipo de usurio! 6ara e>empli$i"ar2
imagine um sistema 8ipotti"o de "ontrole a"ad@mi"o- enquanto pro$essores possuem um
per$il que os permite digitar as notas de seus alunos2 estes :ltimos possuem um per$il um
pou"o mais restrito2 que s# os d a"esso < visualiza/0o de suas pr#prias notas! Embora a
in$orma/0o )nota+ se7a visvel para ambos os per$is de usurio )pro$essores e alunos+2 o
es"opo de atua/0o sobre ela varia sensivelmente!
2 Curtir Curtir
CONTEDO REVISTAS CURSOS DEVWARE MVP LOGIN
JSF: Controle de Sesses e Controle de Acesso - Revista Java Magazin... http://www.devmedia.com.br/jsf-controle-de-sessoes-e-controle-de-ace...
2 de 11 30/07/2014 01:44 PM
A Determinadas opera/3es2 para serem apresentadas e utilizadas2 e>igem autenti"a/0o de
usuriosB
A As atividades de um usurio autenti"ado perten"em a um "onte>to parti"ular de uso do
sistemaB
A 6ode 8aver atividades2 em um sistema2 que s# devem ser apresentadas a tipos espe"$i"os
de usurio!
Todas elas ser0o abordadas ao longo deste artigo2 na $orma de um tutorial e uma apli"a/0o
tema! 6ara e$eito de norteamento do leitor2 trabal8aremos "om as premissas estabele"idas a
seguir-
A C primeira "ara"tersti"a da lista a"ima2 ser atribudo o termo D"ontrole de a"essoEB
A C segunda2 atribuiremos os termos Dsess0oE e D"ontrole de sess0oEB
A 6or $im2 < ter"eira "ara"tersti"a2 atribuiremos o termo D"ontrole de per$is de a"essoE!
Fuando ini"iarmos o tutorial2 mais adiante2 tais premissas a7udar0o na identi$i"a/0o dos
"on"eitos a elas asso"iados e seu respe"tivo tratamento dentro das te"nologias adotadas!
E 7 que $alamos em te"nologia2 vamos analisar os $atos sob esta #ti"a a partir de agora! ?
mer"ado nos o$ere"e op/3es variadas para atingirmos um nvel satis$at#rio de seguran/a em
sistemas baseados na plata$orma Java EE e tambm $ora dela! Goa parte de todo o trabal8o
"onsiste na "on$igura/0o de bibliote"as2 $rame4orHs e outros re"ursos;sistemas rela"ionados2
restando bem pou"o a se $azer em termos de implementa/0o! Isto torna as "oisas bem mais
simples e geis2 mas o $ato que nem sempre $oi assim! Toda esta $a"ilidade de 8o7e
possvel prin"ipalmente devido a alguns mar"os muito signi$i"ativos2 dos quais desta"aremos
dois-
A Lan/amento do Java & "om amplo suporte a anota/3es2 tornando boa parte da "on$igura/0o
de sistemas2 de standalone a 4eb )passando in"lusive por mobile+2 muito mais simplesB
A Lan/amento do Java EE I2 "om destaque para a A6I de .ervlets *!J e DI2 permitindo a
"on$igura/0o de listeners e $iltros )e servlets tambm2 naturalmente+ a partir de anota/3es
muito simples de "ompreender e utilizar!
Alm desses epis#dios essen"iais da 8ist#ria da plata$orma Java2 importante desta"armos a
evolu/0o e>pressiva do $rame4orH Spring2 espe"ialmente do m#dulo Spring Security2 "om
poderosos re"ursos para "ontrole de a"esso2 $iltros2 redire"ionamento2 sess3es2 dentre
CONTEDO REVISTAS CURSOS DEVWARE MVP LOGIN
JSF: Controle de Sesses e Controle de Acesso - Revista Java Magazin... http://www.devmedia.com.br/jsf-controle-de-sessoes-e-controle-de-ace...
3 de 11 30/07/2014 01:44 PM
seus prop#sitos2 permitindo ao desenvolvedor in"orporar em suas apli"a/3es um alto grau de
robustez e "on$iabilidade! Atualmente2 este m#dulo um dos mais maduros do .pring e tem
sido apli"ado em solu/3es de in:meras empresas ao redor do mundo! 6ara mais in$orma/3es
sobre o .pring e2 espe"i$i"amente2 o .pring .e"uritK2 "onsulte a se/0o in!s ao $inal do
artigo!
1o tutorial a seguir2 veremos "omo desenvolver uma apli"a/0o em Java para a Leb usando
apenas os re"ursos disponveis na plata$orma Java EE e2 prin"ipalmente2 na espe"i$i"a/0o J.5
M e em sua implementa/0o mais popular2 o 6rime5a"es! A motiva/0o para a de$ini/0o deste
es"opo sugerir ao leitor uma re$le>0o a"er"a de uma prti"a de mer"ado muito "omum nos
dias de 8o7e2 que "lassi$i"aremos neste artigo "omo su"utili#ao! 5rame4orHs s0o a grande
onda da programa/0o orientada a "omponentes2 mas a alta variedade de Dpe/asE neste
D7ogoE tem trazido um e$eito "olateral preo"upante- a "ombina/0o de muitos $rame4orHs para
atender uma ne"essidade que2 muitas vezes2 seria sanada apenas por um ou dois deles!
? pro$issional dos dias de 8o7e "on8e"e bem pou"o o material "om que trabal8a em seu dia a
dia2 e algumas "ombina/3es de te"nologias s0o $requentemente utilizadas meramente por
terem sido2 em algum momento2 rotuladas no mer"ado "omo garantias absolutas e
inquestionveis de qualidade2 disponibilidade2 es"alabilidade e seguran/a! .er mesmoN .er
que2 ao longo do tempo2 a ne"essidade por agilidade n0o nos tem trazido "erta pressa pelo
resultado2 gerando de$i"i@n"ias e $ragilidades para as quais temos dado2 erradamente2 pou"a
aten/0o e importOn"iaN
Po7e observamos o .pring "omo padr0o "onsolidado de mer"ado! 10o que 8a7a algum
problema "om este $rame4orH2 embora seu uso possa ser at substitudo2 em alguns "asos2
"om re"ursos que o pr#prio Java EE I passou a o$ere"er )"omo o 7 men"ionado DI2
a"rQnimo para Context and Dependency Injection+! 6ara integra/0o entre sistemas2 por
e>emplo2 podemos $azer uso do .pring Integration2 mas e>istem alternativas bem
interessantes e muito poderosas igualmente $"eis de aprender e empregar2 "omo o Apac$e
Camel2 da 5unda/0o Apa"8e )vide se/0o in!s para re$er@n"ia a este pro7eto+! A re$le>0o
que estamos sugerindo para o leitor da Java Magazine2 prin"ipalmente para aqueles que 7
trabal8am "om )ou se interessam por+ desenvolvimento 4eb2 - e se2 um dia2 .pring n0o
$osse mais uma op/0oN omo as empresas e os pro$issionais reagiriam a um movimento
"omo esteN
A preo"upa/0o maior deste te>to que segue e>atamente esta- trazer para o leitor uma
proposta2 de "erta $orma2 minimalista2 que e>plore em uma intensidade maior os re"ursos de
uma espe"i$i"a/0o s#lida "omo a Java EE2 "omo alternativa para essas "ombina/3es
mer"adol#gi"as $requentemente en"ontradas por a! Estas "ombina/3es2 normalmente2
"on$iguram um uso muito aqum do poten"ial que "ada $rame4orH empregado possui2
CONTEDO REVISTAS CURSOS DEVWARE MVP LOGIN
JSF: Controle de Sesses e Controle de Acesso - Revista Java Magazin... http://www.devmedia.com.br/jsf-controle-de-sessoes-e-controle-de-ace...
4 de 11 30/07/2014 01:44 PM
desempen8o e na "omple>idade de sistemas2 alm de e>igir2 naturalmente2 pro$issionais
gabaritados em uma gama muito maior de te"nologias do que o realmente ne"essrio para se
"olo"ar apli"a/3es de qualidade em e>e"u/0o!
A apli"a/0o desenvolvida para este artigo engloba a e>ibi/0o das a"omoda/3es de "8als
lo"alizados em uma praia de 9batuba2 litoral norte do estado de .0o 6aulo! Todos os re"ursos
da apli"a/0o est0o protegidos e requerem autenti"a/0o do usurio2 que pode ser de tr@s
tipos! A Ta"ela % des"reve brevemente "ada um deles2 in$ormando seus respe"tivos nveis
de a"esso aos re"ursos o$ere"idos pelo sistema!
Ta"ela %& Tipos de usurio e seus nveis de a"esso!
.empre que pre"isarmos registrar as opera/3es realizadas por um usurio em uma apli"a/0o
4eb e2 prin"ipalmente2 manter dados produzidos e;ou "onsumidos em mem#ria ao longo do
perodo em que este usurio estiver em atividade2 estar usando o que se entende2 em
"omputa/0o2 por sesso!
9ma sess0o pode ser assim de$inida- Duma tro"a de in$orma/3es semipermanente2
interativaE2 ou ainda- Dum dilogo2 uma "onversa/0o ou reuni0o entre dois ou mais
dispositivos ou um "omputador e um usurioE!
R
CONTEDO REVISTAS CURSOS DEVWARE MVP LOGIN
JSF: Controle de Sesses e Controle de Acesso - Revista Java Magazin... http://www.devmedia.com.br/jsf-controle-de-sessoes-e-controle-de-ace...
5 de 11 30/07/2014 01:44 PM
? que vo"@ a"8ou deste postN
Gostei )%*+ )*+
Este post est disponvel para assinantes MS6!
Pedro Brigatto
Sou engenheiro da computao graduado pela UFSCar, especialista em Engenharia de Software pela UNIMEP,
certificado SCJP e SAP Netweaver (Java Stack). Atuo como consultor pela Avaya e tambm instrutor Java/Android
pelo Instituto de [...]
omentrio T Tire sua d:vida
Jilles ,agon8a
Artigo simplesmente $antsti"o!
on"eitos prti"os que realmente temos que usar no dia a dia
6arabns pela e>"elente matria 6edro
U8 V% anoW ' ,esponder
,ap8ael astro ?zelo!
Amigo2 parabns pelo artigo2 muito ob7etivo!
.# que pelo que eu entendi vo"@ n0o usou o JAA. e $ez uma inter"epta/0o nas requisi/3es PTT6 e assim
vo"@ mesmo "ontrola o a"esso ao sistema2 n0o issoN ? uso do JAA. n0o mel8orN 6ois quem R"ontrolaR
o servidor de apli"a/0oN
UWXs
U8 V% m@sW ' ,esponder
'autor( 6edro Grigatto
?i2 ,ap8ael! omo vaiN
,ealmente2 n0o usei JAA.!
? ob7etivo do artigo era mostrar "omo $azer uma inter"epta/0o de requests para veri$i"ar se 8
sess0o vlida !!! uma $orma Y"aseiraY de autenti"a/0o e "ontrole de sess3es! Deste artigo2
naturalmente2 d pr evoluir e $azer algo mais ba"ana2 mais "ompleto! ? ob7etivo do artigo2 at
CONTEDO REVISTAS CURSOS DEVWARE MVP LOGIN
JSF: Controle de Sesses e Controle de Acesso - Revista Java Magazin... http://www.devmedia.com.br/jsf-controle-de-sessoes-e-controle-de-ace...
6 de 11 30/07/2014 01:44 PM
responderia que sim2 o JAA. )ou o uso de algo "omo .pring .e"uritK+ traria para vo"@2 de Ygra/aY2
muito do que vo"@ teria que $azer na m0o pela $orma que eu apresentei no artigo!
,espondi sua perguntaN
Abra/os2
6edro
U8 V% m@sW ' ,esponder
,ap8ael astro ?zelo!
Mais uma vez parabns pelo artigo! .im2 vo"@ respondeu a min8a pergunta2 eu tin8a $i"ado meio
na duvida se era uma outra $orma de implementar o JAA. ou se era um JAA. RalternativoR!
Muito obrigado!
U8 V% m@sW ' ,esponder
LesleK ,ibeiro De astro
6arabns pelo artigo2 muito ob7etivo!
? artigo $i"ou muito Gom e de $"il entendimento!
.# que os $ontes que vo"@ disponibilizou $i"ou muito "on$uso! 9m e>!!! a $orma "omo vo"@ "ria a
persist@n"ia no ban"o e a parte da veri$i"a/0o se usurio est na sess0o ou n0o "om J %! 5i"a di$"il
entender "omo vo"@ $ez2 para tentar $azer pare"ido na min8a apli"a/0o2 a parte do "ontrole de a"esso esta
muito "on$uso!
9m detal8e eu a"8ei "on$uso por eu estar a"ostumado "om Pibernate! A"redito se vo"@ usasse $i"aria mais
$"il de entender!
?brigado!!!
U8 V% m@sW ' ,esponder
'autor( 6edro Grigatto
5ala2 LesleK! Tudo bemN
J6A realmente $a"ilita muita "oisa2 agiliza o trabal8o !!! mas gera mais depend@n"ia e2 pior que
isso2 $aria "om que o artigo $i"asse poludo! Inserindo Pibernate ou E"lipseLinH ou qualquer outra
implementa/0o de J6A ali geraria poten"ial de perda de interesse pelo te>to pelo simples $ato de
que2 ao e>pli"ar uma determinada A6I ou uma engine2 o artigo estaria $or/ando o leitor a e>er"itar
seus "on8e"imentos em uma srie de outras! Entende onde quero "8egar "om meu argumentoN
Este um dos prin"ipais $atores de leitores pararem uma determinada leitura no meio em artigos
mais t"ni"os !!! e e>atamente o que eu pro"uro evitar! E isso2 a"redite2 traz ainda mais
di$i"uldade para autores2 pois n0o $"il vo"@ quebrar as "oisas nos dias de 8o7e! ?s YtemplatesY
est0o a e trazem pr#s e "ontras que dariam um artigo inteiro2 bem $ilos#$i"o in"lusive !!!
1essa lin8a de pensamento2 entendi naquele momento que JDG a base de toda implementa/0o
de persist@n"ia e que2 dentro do universo da Java Magazine2 apli"'la para "8egar em um "#digo
mais "ompleto )que possa ser aproveitado depois em pro7etos+ resultaria em um te>to mais
demo"rti"o2 a"essvel a uma gama maior de pessoas sem grandes obst"ulos!
.obre o "#digo2 o que vo"@ gostaria que $osse mudado para $a"ilitar sua "ompreens0oN Me passa
CONTEDO REVISTAS CURSOS DEVWARE MVP LOGIN
JSF: Controle de Sesses e Controle de Acesso - Revista Java Magazin... http://www.devmedia.com.br/jsf-controle-de-sessoes-e-controle-de-ace...
7 de 11 30/07/2014 01:44 PM
UWs2
6edro
U8 V% m@sW ' ,esponder
LesleK ,ibeiro De astro
Goa tarde2
omo eu avia dito vo"@ est de parabnsZ gostei muito por isso o interesse de utilizar da $orma
"omo $ez!
.e $or possvel2 quero que mude a $oma "omo vo"@ "ria as tabelas e persiste as in$orma/3es no
ban"o! Fueria que $izesse as modi$i"a/3es usando Pibernate!
As min8as apli"a/3es usa Pibernate2 quero utilizar da $orma "omo vo"@ $ez nas min8as apli"a/3es
por isso o pedido!
Muito ?brigado!
Email- 4esleKr"astro[Ka8oo!"om!br
Att! LesleK
U8 V% m@sW ' ,esponder
'autor( 6edro Grigatto
5ala2 LesleK!
ara2 legal! Sou pegar o pro7eto aqui e trabal8ar nele! ? que eu n0o posso te prometer prazo2
porque estou $inalizando um artigo para a JM ainda e tambm ten8o alguns "ompromissos meio
grandes na empresa! Mas assim que eu tiver uma vers0o atendendo essa sua demanda2 te mando
no seu e'mail as instru/3es de "omo ' e onde ' bai>'la! ?HN 6retendo n0o demorar2 s# n0o quero
$e"8ar um prazo "ontigo porque o meu dia'a'dia bem "orrido! J era antes2 agora "om um nenm
de * meses em "asa2 7 viu nN Pe8e B+
Abra/0o2
6edro
U8 V% m@sW ' ,esponder
LesleK ,ibeiro De astro
?brigado pela aten/0o $i"o aguardando!
U8 V% m@sW ' ,esponder
Tar"isio 5ran"is"o
Goa noiteZ
\timo artigo 6edro Grigatto!
CONTEDO REVISTAS CURSOS DEVWARE MVP LOGIN
JSF: Controle de Sesses e Controle de Acesso - Revista Java Magazin... http://www.devmedia.com.br/jsf-controle-de-sessoes-e-controle-de-ace...
8 de 11 30/07/2014 01:44 PM
abra/osZZ
U8 V% m@sW ' ,esponder
'autor( 6edro Grigatto
?i2 Tar"isio!
ara2 tQ "om o tempo bastante limitado ultimamente2 mas podemos tentar! Eu tambm a"abei
"ombinando "om o LesleK de adaptar o pro7eto2 mas sem "8an"e !!! n0o "onsegui nem relar nele
de l para " e realmente por "onta de trabal8o!
? que a"8am2 os dois2 de mar"amos uns 8angouts de $im de semanaN Eu a"8o que mais
produtivo do que eu ter que parar2 sentar2 re"uperar "onte>to2 et"! 5alando "om vo"@s2 eu a"8o
que $i"a mais dinOmi"o e a"aba a7udando mais!
Abra/os2
6edro
U8 V% m@sW ' ,esponder
Tar"isio 5ran"is"o
?brigado por ,esponder 6edro Grigatto2 por mim t #timo qualquer a7uda valida ]]
U8 V% m@sW ' ,esponder
Tar"isio 5ran"is"o
?brigado por ,esponder 6edro Grigatto2 por mim t #timo qualquer a7uda valida ]]
U8 V% m@sW ' ,esponder
Publicidade
CONTEDO REVISTAS CURSOS DEVWARE MVP LOGIN
JSF: Controle de Sesses e Controle de Acesso - Revista Java Magazin... http://www.devmedia.com.br/jsf-controle-de-sessoes-e-controle-de-ace...
9 de 11 30/07/2014 01:44 PM
In"lua um "omentrio
Adi"ionar aos 5avoritos
Mar"ar "omo lido;assistido
In"luir anota/0o pessoal
Sers0o para impress0o
VJava
CONTEDO REVISTAS CURSOS DEVWARE MVP LOGIN
JSF: Controle de Sesses e Controle de Acesso - Revista Java Magazin... http://www.devmedia.com.br/jsf-controle-de-sessoes-e-controle-de-ace...
10 de 11 30/07/2014 01:44 PM
CONTEDO REVISTAS CURSOS DEVWARE MVP LOGIN
JSF: Controle de Sesses e Controle de Acesso - Revista Java Magazin... http://www.devmedia.com.br/jsf-controle-de-sessoes-e-controle-de-ace...
11 de 11 30/07/2014 01:44 PM