Login de usuários MyFaces

17 respostas
andre_guitar7

Olá, pessoal…

Alguém já viu algum tutorial pra lidar com session no MyFaces? Precisava fazer um controle de login de usuários…

vlews

17 Respostas

vanderlanio

bom nunca usei o MyFaces, mas com JSF eu fiz assim, nao sei se ajuda :

request = ((HttpServletRequest)	FacesContext.getCurrentInstance().getExternalContext().getRequest());
		session = request.getSession();

tambem sou novo em jsf … e nao conheco a implementacao MyFaces … e mais simples de usar ? … algum bom tutorial sobre ? Vlws

andre_guitar7

Bem… eu to implementando em uma aplicação, to aprendendo ainda… o problema é o suporte, tutoriais, foruns… é difícil encontrar algo… estava trabalhando com o Mentawai. É bem melhor porque vc tem um forum em português e super ativo. O Menta tem suporte a grupos de usuários, vc especifica o que cada grupo acessa, facilita bastante. Queria saber se o MyFaces suporta grupos de usuários…

urubatan

usa JSF direito que resolve :smiley:
é só criar um Managed Bean com escopo de sessão e pronto …

andre_guitar7

urubatan:
usa JSF direito que resolve :smiley:
é só criar um Managed Bean com escopo de sessão e pronto …

É bem isso que estou fazendo… que bom que estou fazendo certo… :slight_smile:

vanderlanio

a maneira que fiz esta incorreta ???
qual seria a abordagem correta ??? posta ai … :smiley:

andre_guitar7

Mas como eu posso, em um outro Managed Bean, pegar infrmações deste Managed Bean que está em session?

andre_guitar7

vanderlanio:
a maneira que fiz esta incorreta ???
qual seria a abordagem correta ??? posta ai … :smiley:

Vc usa um Managed Bean com escopo de sessão:

O meu ficou assim:

<managed-bean> <managed-bean-name>personLoginManaged</managed-bean-name> <managed-bean-class>br.comunidadebetel.managedbean.PersonLoginManaged</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean>
Vc pode acessar ele como um objeto de sessão…

vanderlanio

blz … faço dessa forma … a minha duvida e pra resgatar o bean da sessao … :lol:

como faz ?.. essa tb e sua duvida ne ? ou vooei ?

andre_guitar7

Bem se vc quer somente exibir no html:

<h:outputText value="#{personLoginManaged.login}" />

Ou seja, o nome do teu Managed Bean.atributo…

Meu problema é pegar a informação de uma Managed Bean para outro ManagedBean, diretamente…

vanderlanio

Opa… acho que expresei mal…
Tipo, como havia dito vc tem que fazer um Login de usuario certo ? Entao se o usuario foi autenticado com sucesso vc ira set na sessao certo ? e quando precisar de alguma informacao do tipo permisao tera que resgatar esse bean (usuario ) e ver qual as suas permisoes, certo ?

entao …como vc ira resgatar e colocar esse usuario na sessao ?

para isso eu utilizei o trecho de codigo abaixo :

request = ((HttpServletRequest)	FacesContext.getCurrentInstance().getExternalContext().getRequest());
 		session = request.getSession();

essa minha abordagem esta incorreta ??? ( da certo :smiley: )

andre_guitar7

É isso que to tentando fazer… queria saber se MyFaces tem tags de condição… tipo um if, else, sei lá… o Menta tem…

vanderlanio

E como eu disse eu nao conheco o MyFaces… tb nao usei o Menta … mas sei que ele tem modulos pra autenticaçao , autorizaçao … no meu caso estou vindo do struts…

urubatan

seguinte, a página é o lugarerrado para fazer IF qualquer porcaria que seja …

se tu quer esconder um componente pode usar a propriedade rendered, ela aceita EL.

algo do tipo, dentro da propriedade rendered, coloque:

#{!empty meuGerenciadorDeLogin.usuario}

ou então

#{meuGerenciadorDeLogin.temAlgumUsuarioLogado}
urubatan
vanderlanio:
Opa... acho que expresei mal... Tipo, como havia dito vc tem que fazer um Login de usuario certo ? Entao se o usuario foi autenticado com sucesso vc ira set na sessao certo ? e quando precisar de alguma informacao do tipo permisao tera que resgatar esse bean (usuario ) e ver qual as suas permisoes, certo ?

entao ...como vc ira resgatar e colocar esse usuario na sessao ?

para isso eu utilizei o trecho de codigo abaixo :
request = ((HttpServletRequest)	FacesContext.getCurrentInstance().getExternalContext().getRequest());
 		session = request.getSession();

essa minha abordagem esta incorreta ??? ( da certo :D )

bahh, mas vocês gostam de passar trabalho ...

usem uma managed property ...

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
"http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<faces-config>
	<managed-bean>
		<managed-bean-name>personLoginManaged</managed-bean-name>
		<managed-bean-class>br.comunidadebetel.managedbean.PersonLoginManaged</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>
	<managed-bean>
		<managed-bean-name>qualquerOutroM</managed-bean-name>
		<managed-bean-class>br.comunidadebetel.managedbean.OutraClasseQualquer</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
		<managed-property>
			<property-name>PropriedadeDoMesmoTipoComGetESet</property-name>
			<property-class>br.comunidadebetel.managedbean.OutraClasseQualquer</property-class>
			<value>#{personLoginManaged}</value>
		</managed-property>
	</managed-bean>
</faces-config>
andre_guitar7

seguinte, a página é o lugarerrado para fazer IF qualquer porcaria que seja …

se tu quer esconder um componente pode usar a propriedade rendered, ela aceita EL.

algo do tipo, dentro da propriedade rendered, coloque:

#{!empty meuGerenciadorDeLogin.usuario}

ou então

#{meuGerenciadorDeLogin.temAlgumUsuarioLogado}

Bem, digamos que eu tenha um menu que eu não quero exibir se o usuário estiver logado ou vice-versa… como poderei fazer?

urubatan

[color=red][size=24]RTFM[/size][/color]

ja coloquei a resposta acima, agora pensa um pouco e junta os pedaços.

vanderlanio

pode me chamar de burro se quiser :lol: … mas nao mas fico uma duvida…tipo na classe antes deve-se verifica se usu e senha esta correto, antes de abrir uma session,(no codigo utilizo aquele trecho postado anteriormente) esta errado essa abordagem ? pelo que entendi o managed-property somente passa o bean da sessao via get set … ou viajei de novo ?

Criado 16 de agosto de 2006
Ultima resposta 16 de ago. de 2006
Respostas 17
Participantes 3