Hola planteo un poco lo que quiero hacer a ver si me entienden, estoy usando JSF, basicamente lo que quiero hacer es enviar una URL con un parametro por mail, cuando el usuario recibe el mail hace click en el link, ahora bien al hacer click lo envia a la pagina, pero antes se debe loguear( filtro de autentificacion), lo que hago es guardar ese parametro en la session y luego en el boton login pregunto si esta el parametro redirigo a una pagina, en caso de no estar este parametro redirigo a la pagina principal, mi problema es qeu esto lo hago todo por regla de navegaciones en un xml, ahora la idea es que si ese parametro existe redirija a una pagina intermedia y esta automaticamente despues rediriga a la pagina correspondiente con los datos cargados, mi problema es que el bean de autentificacion y el bean que carga los datos son de request, y no se como pasarle el parametro al bean que carga los datos desde el bean de autentificacioon, aca les dejo un poco de codigo para que me puedan entender mejor,
saludos y muchas gracias
definicion de los beans
Código:
<managed-bean>
<description>Bean Autenticación</description>
<managed-bean-name>authenticationBean</managed-bean-name>
<managed-bean-class>uy.com.its.itil.view.AuthenticationBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>linkIncidentBean</managed-bean-name>
<managed-bean-class>uy.com.its.itil.view.LinkIncidentBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>idTicket</property-name>
<value>#{param.idTicket}</value>
</managed-property>
</managed-bean>
Reglas de navegacion
Código:
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
<from-action>#{authenticationBean.login}</from-action>
<from-outcome>success</from-outcome>
<to-view-id>/consultasIncidentes.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<from-action>#{authenticationBean.login}</from-action>
<from-outcome>linkIncident</from-outcome>
<to-view-id>/linkIncident.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
el metodo que loguea se los dejo
Código:
public String login() {
this.usuario = (Usuario) authController.checkAuth(this.nomUsuario,this.passUsuario);
FacesContext context = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) context.getExternalContext().getSession(false);
//este parametro se guarda correctamente
String idTicket = (String)session.getAttribute(Constants.ID_TICKET);
session.removeAttribute(Constants.ID_TICKET);
sessionBean = new SessionBean();
sessionBean.setUsuario(usuario);
session.setAttribute(Constants.VISIT_KEY, sessionBean);
if (idTicket!=null && idTicket.length()>0){
//aca deberia redirigiar a otra pagina pero deberia pasarle el parametro y no se como
return "linkIncident";
}else{
//aca redirigo a la pagina principal si el parametro es nul
return "success";
}
return "failed";
}
si alguno no entiende que me pregunte
saludos y gracias de nuevo