Problema com login no struts2

0 respostas
rodrigo.fai

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&aacute;gina &eacute; melhor visualizada com resolu&ccedil;&atilde;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.

Criado 5 de março de 2008
Respostas 0
Participantes 1