| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2006 14:18:01
|
joaosouza
JavaEvangelist
![[Avatar]](/images/avatar/d87ee98a9e01f8df5addf6065bf163e1.jpeg)
Membro desde: 14/08/2006 15:57:59
Mensagens: 331
Localização: São Paulo
Offline
|
Olá pessoal sou novo no struts e não sei como fazer um esquema de autenticação, ou seja, o sistema não deixar que usuários possam acessar outras páginas antes de passar pelo login. Já fiz isso no Mentawai, mas no Struts não tenho idéia de como fazer.
Alguém pode me dar um exemplo, por favor.
Abraços.
|
João Paraiso.
# The Future is Open !! |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2006 14:34:03
|
saoj
JWizard
![[Avatar]](/images/avatar/2e7ceec8361275c4e31fee5fe422740b.png)
Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline
|
O Struts nem deve ter isso!
Como vc faz "redirect after login" com Struts?
Provavelmente vc terá que fazer tudo na unha para autenticar com Struts.
Evite o Struts!
|
Sergio A Oliveira Jr. - saoj
ExperiMENTA:
Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2006 14:41:58
|
foliveira81
JavaGuru
Membro desde: 10/09/2006 21:57:52
Mensagens: 204
Offline
|
vc tem que tratar nas suas action.
guarda na sessao o usuario logado.. e seu perfil, com isso vc resgata um pojo dessa informaçoes e verifica se o mesmo tem acesso, verdadeiro dispara para a acao normalmente senao para um tela de msg..
isso que falei sao seus forwards. ok
[]'s
|
Fernando Oliveira |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2006 15:00:39
|
JOMI
JavaChild
Membro desde: 28/08/2006 09:16:07
Mensagens: 103
Offline
|
O Struts nao tem isso.
De uma olhada em topicos Java Authentication and Authorization Service (JAAS)
Uma forma muito utilizada é por FORM
<login-config>
<auth-method>FORM</auth-method>
<realm-name></realm-name>
<form-login-config>
<form-login-page>/jsp/common/login.jsp</form-login-page>
<form-error-page>/jsp/common/loginError.jsp</form-error-page>
</form-login-config>
</login-config>
Tudo isso é o container responsavel. Assim que autenticado, faca o que o foliveira81 disse. Guarde numa sessao o usuario logado pois vc pode verificar algum dado do usuario bem como verificar se a sessao expirou (normalmente cria-se uma action pai para outras actions. Nessa action pai verifica se a sessao expirou).
|
SCBCD - quase la!!
SCWCD - 88%
SCJP - 70%
SCJA - 78% |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2006 15:43:55
|
diego_arruda
Thread.start()
![[Avatar]](/images/avatar/aa8fdbb7d8159b3048daca36fe5c06d2.jpg)
Membro desde: 10/05/2005 17:55:54
Mensagens: 31
Offline
|
Eu indico você utilizar um filtro para isso, é assim que eu faço para qualquer aplicação WEB, pois é simples e funcional. Além de não deixar amarrado a frameworks.
No caso, o filtro iria interceptar a chamada para a página, verificaria se o usuário está na sessão, se não estiver, joga para a página de login.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2006 16:05:19
|
psevestre
JavaEvangelist
Membro desde: 13/05/2005 12:53:19
Mensagens: 432
Localização: São Paulo
Offline
|
Para autenticação no nível de página, use os security-constraints que vc. coloca no próprio web.xml (cf post anterior).
Para controle no nível de conteúdo da página (p.ex, itens de menu ou blocos de conteúdo), use a EL e JSTL,ou um dos tags do pacote "logic".
Outra taglib que pode te ajudar é o tiles, que possui suporte a especificar os roles aos quais o usuário deve pertencer para que determinado conteúdo seja exibido.
|
http://justaphilpicks.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2006 16:13:29
|
saoj
JWizard
![[Avatar]](/images/avatar/2e7ceec8361275c4e31fee5fe422740b.png)
Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline
|
O homem já foi e voltou da lua, mas o Struts não oferece nada para facilitar a vida de quem tem que fazer autenticação ???
E redirect after login, como vc faz ???
E proteção de página x proteção de action, como vc faz ???
E autorização, como vc faz ????
|
Sergio A Oliveira Jr. - saoj
ExperiMENTA:
Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2006 16:29:14
|
joaosouza
JavaEvangelist
![[Avatar]](/images/avatar/d87ee98a9e01f8df5addf6065bf163e1.jpeg)
Membro desde: 14/08/2006 15:57:59
Mensagens: 331
Localização: São Paulo
Offline
|
Pois é Sérgio, não é nada fácil trabalhar com struts, sou iniciante em programação, conheci o menta e logo de cara consegui desenvolver meu primeiro sistema com o framework, e fiquei impressionado com sua facilidade e funcionalidade.
Tá aí Sérgio grandes problemas q tenho q resolver auenticação e autorização. Que vontade de usuar <mtw:requiresAuthentication/> como filtro global no appManager, <mtw:hasAuthorization groups=""> para users e admins.
Mas vamos lá aos trancos e barrancos tentando a cada dia aprender um pouco mais.
|
João Paraiso.
# The Future is Open !! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2006 17:53:32
|
saoj
JWizard
![[Avatar]](/images/avatar/2e7ceec8361275c4e31fee5fe422740b.png)
Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline
|
No seu trabalho estão te obrigando a usar Struts?
|
Sergio A Oliveira Jr. - saoj
ExperiMENTA:
Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2006 18:01:22
|
joaosouza
JavaEvangelist
![[Avatar]](/images/avatar/d87ee98a9e01f8df5addf6065bf163e1.jpeg)
Membro desde: 14/08/2006 15:57:59
Mensagens: 331
Localização: São Paulo
Offline
|
Sim. Antes usavamos o Menta, antes da saída de um analista programador que comandava a equipe de desenvolvimento. Agora querem que seja usado o Struts por ser o mais utilizado no mercado.
|
João Paraiso.
# The Future is Open !! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2006 18:11:43
|
saoj
JWizard
![[Avatar]](/images/avatar/2e7ceec8361275c4e31fee5fe422740b.png)
Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline
|
joaosouza wrote:
Sim. Antes usavamos o Menta, antes da saída de um analista programador que comandava a equipe de desenvolvimento. Agora querem que seja usado o Struts por ser o mais utilizado no mercado.
O cara que ordenou isso provavelmente não deve ser o cara que está colocando a mão na massa.
Até porque não deve saber nem HTML....
(brincadeira, se o cara souber me desculpa... mas Struts é dose!)
|
Sergio A Oliveira Jr. - saoj
ExperiMENTA:
Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2006 19:11:34
|
mcruz
Debugger
![[Avatar]](/images/avatar/409bbd0d0f516a326f2080c26a10d530.jpg)
Membro desde: 19/05/2006 17:13:52
Mensagens: 62
Offline
|
Sinceramente, eu gosto de struts... Acho que muitos dos frameworks existentes hoje devem muito a ele, apesar de existirem outros mais fáceis de usar (menta) ou mais bem estruturados (jsf).
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/12/2006 15:40:11
|
joaosouza
JavaEvangelist
![[Avatar]](/images/avatar/d87ee98a9e01f8df5addf6065bf163e1.jpeg)
Membro desde: 14/08/2006 15:57:59
Mensagens: 331
Localização: São Paulo
Offline
|
Oi pessoal, consegui fazer o esquema de autorização q não estava conseguindo, segui abaixo o scriptlet q utilizei nas páginas do sistema.
Obrigado a todos pela atenção e paciência.
|
João Paraiso.
# The Future is Open !! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/12/2006 16:21:20
|
psevestre
JavaEvangelist
Membro desde: 13/05/2005 12:53:19
Mensagens: 432
Localização: São Paulo
Offline
|
saoj wrote:
O homem já foi e voltou da lua, mas o Struts não oferece nada para facilitar a vida de quem tem que fazer autenticação ???
Acho que foi uma decisão razoável do Struts não fazer autenticação. A infra do servlet container já dá algumas alternativas que funcionam (BASIC/FORM) e vc. pode tb. usar certificados de cliente. Ter isto de forma ortogonal ao framework é uma "coisa boa", NMO.
saoj wrote:
E redirect after login, como vc faz ???
Se vc. quer dizer com isto ir para a página que o cara queria (protegida) e foi interceptado pelo login, o form-base resolve.
saoj wrote:
E proteção de página x proteção de action, como vc faz ???
Via security-constraint declarativa no web.xml. De novo, acho que foi uma decisão correta não reinventar a roda.
saoj wrote:
E autorização, como vc faz ????
No nível de caso de uso, que em Struts costumam mapear diretamente em Actions e, por tabela, em URIs diferentes, uso security-constraints.
No nível de dados, acaba sendo um problema da camada de serviços, mas o tiles pode exibir condicionalmente blocos em função dos roles do usuário autenticado pela infra-estrutura.
|
http://justaphilpicks.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/12/2006 19:55:20
|
the_negao
JavaChild
![[Avatar]](/images/avatar/747c1bcceb6109a4ef936bc70cfe67de.png)
Membro desde: 06/01/2005 01:58:58
Mensagens: 119
Localização: Feira de Santana - BA
Offline
|
joaosouza wrote:Oi pessoal, consegui fazer o esquema de autorização q não estava conseguindo, segui abaixo o scriptlet q utilizei nas páginas do sistema.
Obrigado a todos pela atenção e paciência.
Cara, só uma sugestão...
Se você irá utilizar o Struts, usa as taglibs então.
No lugar do scriptlet utiliza:
<logic:notPresent name='usuario' scope='REQUEST ou SESSION'>
<logic:redirect page='PAGINA DE LOGIN/>
</logic:notPresent>
Dá uma olhada em: http://struts.apache.org/1.2.9/userGuide/index.html
|
® Sérgio Souza ®
 |
|
|
 |
|
|