olá galera!!!
estou desenvolvendo uma aplicação utilizando struts2 e hibernate3… ja implementei o sistema de autenticação do usuario, porem nao esta funcionando corretamente!!!
foi crida uma action p/ verificação dos atributos(login, password) e um interceptor p/ verificação da sessao antes do acesso a qualquer recurso
o codigo da action eh:
private String login;
private String password;
private DaoFactory daoFactory;
private UsuarioLogic usuarioLogic;
private Usuario usuario;
private Map session;
public String execute()
{
if(this.isInvalid(login) || this.isInvalid(password))
return "invalid";
else
{
this.session.put("usuario", this.usuario);
return this.checkLogin();
}
}
public boolean isInvalid(String value)
{
return(value == null || value.length() == 0);
}
public String checkLogin()
{
this.daoFactory = new DaoFactory();
this.usuarioLogic = new UsuarioLogic(this.daoFactory);
this.usuario = new Usuario();
this.usuario.setNome(this.login);
this.usuario.setSenha(this.password);
return this.usuarioLogic.valida(this.usuario);
}
public final String getLogin()
{
return login;
}
public final void setLogin(String login)
{
this.login = login;
}
public final String getSenha()
{
return password;
}
public final void setSenha(String password)
{
this.password = password;
}
public void setSession(Map session)
{
// TODO Auto-generated method stub
this.session = session;
}
public Map getSession()
{
return this.session;
}
interceptor:
private Map session;
public final Map getSession()
{
return session;
}
public final void setSession(Map session)
{
this.session = session;
}
public void destroy()
{
// TODO Auto-generated method stub
}
public void init()
{
// TODO Auto-generated method stub
}
public String intercept(ActionInvocation invocation) throws Exception
{
// TODO Auto-generated method stub
Action action = (Action) invocation.getAction();
ActionContext actionContext = null;
Usuario usuario = (Usuario) actionContext.getContext().getSession().get("usuario");
if(usuario == null)
return "login";
return invocation.invoke();
}
jsp:
<body>
<div id="zeus">
<s:form action="login">
<s:textfield name="login" label="Usuário"></s:textfield>
<s:password name="password" label="Senha"></s:password>
<s:submit value="Acessar"></s:submit>
</s:form>
<p id="observacao">Obs.: Esta página é melhor visualizada com resolução 1024x768!</p>
</div>
<img id="logo" src="/zeuswebserver/recursos/figuras/logobranco.jpg" width="295" height="112" />
</body>
struts.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml" />
<package name="default" extends="struts-default">
<action name="login" class="net.sytes.tsda.zeuswebserver.action.LoginAction">
<result name="invalid">/invalido.jsp</result>
<result name="valid">/paginas/index.jsp</result>
</action>
<interceptors>
<interceptor name="login" class="net.sytes.tsda.zeuswebserver.interceptor.LoginInterceptor" />
<interceptor-stack name="loginStack">
<interceptor-ref name="login" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="login" />
</package>
</struts>
no arquivo web.xml eu defini uma security-constraint p/ as paginas visiveis somente p/ usuarios logados:
<!-- Definição de regra de controle de acesso -->
<security-constraint>
<display-name>
Bloqueio a acesso direto as paginas JSP.
</display-name>
<web-resource-collection>
<!-- Nome do padrão de URL -->
<web-resource-name>Paginas do Desenvolvedor</web-resource-name>
<!-- Especifica um padrão de URL -->
<url-pattern>/paginas/*</url-pattern>
<url-pattern>/tsda/*</url-pattern>
</web-resource-collection>
<!-- Especificação de permissões de acesso ao padrão de URL especificado acima -->
<auth-constraint>
<description>Sem regras, apenas bloqueio acesso direto.</description>
</auth-constraint>
</security-constraint>
quando informo o login e a senha e clico do submit eh exibida a seguinte msm de warning:
05/03/2008 10:04:05 org.apache.struts2.components.Form evaluateExtraParamsServletRequest
WARNING: No configuration found for the specified action: ‘login’ in namespace: ‘/’. Form action defaulting to ‘action’ attribute’s literal value.
Eh como se não tivesse uma action definida!!! Muito estranho isso… nao sei c eh o interceptor que esta ocasionando esta msm tb, uma vez que nunca utilizei este recurso e nao tenho certeza c esta trabalhando corretamente!!!
Alguém poderia me auxiliar???
Obrigado.