WEB9102: Web Login Failed: com.sun.enterprise.security.auth.login.common.LoginException: Login failed: Failed jdbc login for Emmanuel.|#]
private static final long serialVersionUID = 3254181235309041386L;
private static Logger log = Logger.getLogger(LoginView.class.getName());
@Inject
private UserEJB userEJB;
private String username;
private String password;
private User user;
public String login() {
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
try {
request.login(username, password
);
} catch (ServletException e) {
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Login Failed!", null));
return "login.xhtml";
}
Principal principal = request.getUserPrincipal();
this.user = userEJB.findUserById(principal.getName());
log.log(Level.INFO, "Authentication done for user: {0}", principal.getName());
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
Map<String, Object> sessionMap = externalContext.getSessionMap();
sessionMap.put("User", user);
if (request.isUserInRole("users")) {
return "/user/sc.xhtml?faces-redirect=true";
} else if (request.isUserInRole("admin")) {
return "/admin/admin.xhtml?faces-redirect=true";
}
else if (request.isUserInRole("SC_user")) {
return "/SC_user/privatepage?faces-redirect=true";
}
else if (request.isUserInRole("Cardseb_user")) {
return "/Cardseb_user/privatepage?faces-redirect=true";
}
else{
return "login.xhtml";
}
}
public String logout() {
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
try {
this.user = null;
request.logout();
// clear the session
((HttpSession) context.getExternalContext().getSession(false)).invalidate();
} catch (ServletException e) {
log.log(Level.SEVERE, "Failed to logout user!", e);
}
return "/login.xhtml?faces-redirect=true";
}
public User getAuthenticatedUser() {
return user;
}
public static Logger getLog() {
return log;
}
public static void setLog(Logger log) {
LoginView.log = log;
}
public UserEJB getUserEJB() {
return userEJB;
}
public void setUserEJB(UserEJB userEJB) {
this.userEJB = userEJB;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
-
@author LOGIMATE USER
*/
@nAmed(value="registerView")
@ManagedBean
@SessionScoped
public class RegisterView implements Serializable {
private static final long serialVersionUID = 1685823449195612778L;
private static Logger log = Logger.getLogger(RegisterView.class.getName());
@Inject
private UserEJB userEJB;
private String username;
private String email;
private String password;
private String confirmPassword;
public void validatePassword(ComponentSystemEvent event) {
FacesContext facesContext = FacesContext.getCurrentInstance();
UIComponent components = event.getComponent();
//get password
UIInput uiInputPassword = (UIInput) components.findComponent("password");
String password = uiInputPassword.getLocalValue() == null ? "" : uiInputPassword.getLocalValue().toString();
String passwordId = uiInputPassword.getClientId();
// get confirm password
UIInput uiInputConfirmPassword = (UIInput) components.findComponent("confirmpassword");
String confirmPassword = uiInputConfirmPassword.getLocalValue() == null ? ""
: uiInputConfirmPassword.getLocalValue().toString();
// Let required="true" do its job.
if (password.isEmpty() || confirmPassword.isEmpty()) {
return;
}
if (!password.equals(confirmPassword)) {
FacesMessage msg = new FacesMessage("Confirm password does not match password");
msg.setSeverity(FacesMessage.SEVERITY_ERROR);
facesContext.addMessage(passwordId, msg);
facesContext.renderResponse();
}
if (userEJB.findUserById(email) != null) {
FacesMessage msg = new FacesMessage("User with this e-mail already exists");
msg.setSeverity(FacesMessage.SEVERITY_ERROR);
facesContext.addMessage(passwordId, msg);
facesContext.renderResponse();
}
}
public String register() {
User user = new User(email, password, username);
//System.out.println("The Registered Users");
userEJB.createUser(user);
log.log(Level.INFO, "New user created with e-mail: {0} and name: {1}", new Object[]{email, username});
}
public static Logger getLog() {
return log;
}
public static void setLog(Logger log) {
RegisterView.log = log;
}
public UserEJB getUserEJB() {
return userEJB;
}
public void setUserEJB(UserEJB userEJB) {
this.userEJB = userEJB;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getConfirmPassword() {
return confirmPassword;
}
public void setConfirmPassword(String confirmPassword) {
this.confirmPassword = confirmPassword;
}
}
<title>CIMS</title>
<style>
h4{
font-family: sans-serif;
color: silver;
text-align=left;
}
</style>
<h:body>
<!--<pe:layout resizerTip="Resize Me" togglerTipClosed="Open Me"
togglerTipOpen="Close Me" fullpage="false" style="">-->
<p:layout style="min-width:390px;min-height:30px;background-color:#040d8a;">
<h4>CIMS Online</h4>
</p:layout>
<p:outputPanel>
<div class="ui-g">
<div class="ui-g-4"/>
<div class="ui-g-4">
<h:form id="login">
<p:growl id="msg" showDetail="true" life="3000" />
<h3><img src="loginLogo.JPG" alt=""/></h3>
<p:panel header="CIMS-Login" style="width: 390px; background-image: url('clasic card.jpg'); background-color: #040d8a" >
<p:messages id="messages" globalOnly="true"/>
<h:panelGrid columns="3" cellpadding="5" style="margin: 0 auto;">
<h:outputLabel style='color:white' for="username" value="E-Mail"/>
<h:inputText id="username" value="#{loginView.username}" required="true" requiredMessage="Please enter your e-mail address"/>
<p:message for="username"/>
<p:outputLabel style='color:white' for="password" value="Password"/>
<h:inputSecret id="password" value="#{loginView.password}" required="true" requiredMessage="Please enter password"/>
<p:message for="password"/>
<p:commandButton id="submit" update="@form"
value="Login" style="color: black" action="#{loginView.login}"/>
<h:link value="Register" outcome="/Register.xhtml" />
</h:panelGrid>
</p:panel>
</h:form>
</div>
</div>
</p:outputPanel>
</h:body>
</f:view>