Cabeçalho JSF com componente de login?
-
06-07-2019 - |
Pergunta
Sou muito novo no JSF e muitas tecnologias relacionadas por aí.
Estou tentando criar um site que tenha um cabeçalho que inclua um logotipo, links de navegação e uma caixa de login, de modo que esse cabeçalho possa ser facilmente incluído em todas as páginas do site, a menos que o usuário faça login; nesse caso, um diferente um diferente O cabeçalho aparecerá. Algo semelhante a LiveJournal.
Eu procurei algumas soluções, como criar um componente JSF personalizado para lidar com o login e combiná -lo com fragmentos JSP e/ou facelets. Mas depois de muita pesquisa no Google, eu realmente não encontrei ninguém que tenha tentado fazer um componente de login personalizado e informações sobre a criação de um cabeçalho como esse é escasso. Então, essa é realmente a maneira certa de resolver meu problema? Existe uma solução melhor?
Desde já, obrigado.
Solução
Definitivamente, eu usaria facelets, pois isso basicamente permitirá que você inclua o mesmo cabeçalho em cada página.
Em termos de um componente de login personalizado - depende de como você está lidando com seu login. Se você estiver usando o JAAS ou a segurança da primavera, precisará se integrar a eles (isso pode ser feito).
No entanto, um cabeçalho de login não precisa ser difícil. Por exemplo, você pode fazer algo como:
<h:form id="loginForm" rendered="#{! loginBean.loggedIn}">
Username: <h:inputText id="username" value="#{loginBean.username}" />
Password: <h:inputPassword id="password" value="#{loginBean.password}" />
<h:commandButton value="Login" action="#{loginBean.login}" />
</h:form>
<h:outputText rendered="#{loginBean.loggedIn}" value="You are logged in as #{loginBean.username}" />