Recuperar variavel no filtro

3 respostas
fmauro
[color=darkred]Boa Noite. Apos alguns meses do curso (1 ano) :lol: . Resolvi tentar novamente criar algo com java. Nao estou sabendo como recuperar e testar a propriedade adm (boolean) aqui no filtro de login. Gostaria tambem de saber se estou no caminho certo em relacao a codificacao e ao fato de estar usando jsf + hibernate, deveria recomecar com algo diferente ... Inte'+[/color] FilterLog.java
public void doFilter(ServletRequest req, ServletResponse resp, 
	    FilterChain chain) throws IOException, ServletException {
		   	if (req instanceof HttpServletRequest) {

		   	HttpServletRequest httpServletRequest = (HttpServletRequest) req;
	      	HttpSession session = httpServletRequest.getSession(); 
	      	if (  session != null && ??  Aqui Gostaria de Testar true/false - ) { 
	    		   chain.doFilter(httpServletRequest, resp);    
	    	  } 
	    	   else {
	    		   filterConfig.getServletContext().getRequestDispatcher("/loga.jsf").
                                                      forward(req, resp); } 
	    	} 
	  	}
web.xml
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
  <context-param>
  	<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
  	<param-value>client</param-value>
  </context-param>  

    <welcome-file-list>
      <welcome-file>index.html</welcome-file>
    </welcome-file-list>
    <filter>
    	<filter-name>HibernateSessionFilter</filter-name>
    	<filter-class>acme.factory.HibernateSessionFilter</filter-class>
	</filter>
	 	<filter-mapping>
		<filter-name>HibernateSessionFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>  
	<filter>
    	<filter-name>FilterLog</filter-name>
    	<filter-class>acme.filters.FilterLog</filter-class>
	</filter>
	 	<filter-mapping>
		<filter-name>FilterLog</filter-name>
		<url-pattern>*.jsf</url-pattern>
	</filter-mapping>   
</web-app>
LogaHandler.java
public class LogaHandler {
	private String nome;
	private String senha;
	private boolean adm;	
	public LogaHandler(){ }
	public String uValida() {
		Session session = HibernateUtil.openSession();
		OperadorDao opa = new OperadorDao(session);
		List<Operador> lista = opa.unico(nome, senha);
		if (lista.size() != 1) { return "nOk";}
		else { return "Ok";}}
faces-config.xml
<?xml version="1.0"?>
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
<faces-config>
	<application>
		<message-bundle>messages</message-bundle>
			<locale-config><default-locale>pt_BR</default-locale>
		</locale-config>
	</application>
	<managed-bean>
			<managed-bean-name>vlog</managed-bean-name>
			<managed-bean-class>acme.handlers.LogaHandler</managed-bean-class>
			<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>
	<navigation-rule>
		<from-view-id>/loga.jsp</from-view-id>
		<navigation-case>
			<from-outcome>Ok</from-outcome>
			<to-view-id>/principal.jsp</to-view-id>
		</navigation-case>
		<navigation-case>
			<from-outcome>nOk</from-outcome>
			<to-view-id>/loginerro.jsp</to-view-id>
		</navigation-case>
	</navigation-rule>
</faces-config>
OperadorDao.java
public List<Operador> unico(String nome, String senha) {
		
		Criteria c = getSession().createCriteria(Operador.class);
		c.add(Restrictions.like("operador", nome, MatchMode.EXACT));
		c.add(Restrictions.like("passe", senha, MatchMode.EXACT));
		c.add(Restrictions.eq("ativo", true));
		return c.list();
	}
Operador.java
@Entity
@Table(name = "tbl_operador")
public class Operador  implements  Serializable {
	 private static final long serialVersionUID = -7033193211817781995L;
	@Id
	@GeneratedValue
	private Integer	pk_operadores;
	private String	operador;
	private boolean	adm;
	private boolean	ativo;
	private String	passe;

3 Respostas

fmauro

[color=darkred]E’ tao dificil assim ?
Minha duvida e’ parecida com esta: http://www.guj.com.br/posts/list/46214.java#242133
Inte’+[/color]

urubatan

JSF + Hibernate é tranquilo
mas da uma lida na tua apostila do curso, principalmente no que diz respeito a escopos de request, session e application

fmauro

[color=darkred] Bom dia.
Apostila veia :cry: e limitada.
Então vortemos as buscas …
Valeu.
[/color]

Criado 1 de outubro de 2007
Ultima resposta 4 de out. de 2007
Respostas 3
Participantes 2