Primeira vez que to perguntando algo aqui, e cheguei nesse ponto pois não tenho mais idéia e não consegui encontrar a resposta.
Fiz um sistema usando Java, Primefaces e Wildfly de servidor. Localmente o sistema roda certinho, faz login e tudo mais. Entretando ao colocar esse sistema via Docker na EC2 da AWS, estou tendo problemas com o login, parece que a pagina não consegue chamar a função de login, já tentei de tudo, trocar anotação, trocar atributo de chamar a função mas nada muda, localmente continua funcionando e na EC2 não loga (esse problema da EC2 acontecia também numa VM local que criei), a EC2 está com todos os acessos liberados no grupo de segurança, firewall também, e para mim não parece ser algo da infraestrutura, e sim do código.
Informação Adicional caso for importante:
Ná minha maquina eu uso Maven 3.9.8 e a versão Java 11.0.24, e no DockerFile estou usando uma imagem com Maven 3.8 e Java 11.0.1.
Vou deixar aqui minha pagina de login e meu bean, se alguem puder ajudar.
_______________________________________________________
Página Xhtml de Login
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta name="apple-mobile-web-app-capable" content="yes" />
<link rel="icon" href="#{request.contextPath}/resources/favicon.jpg" type="image/jpeg"/>
</h:head>
<style>
html, body {
height: 100%;
margin: 0;
}
</style>
<h:body styleClass="loginBody">
<div>
<h:form id="loginForm">
<fieldset class="login-fieldset">
<div class="login-logo-container">
<p:graphicImage name="loginLogo.png" library="images"
styleClass="login-logo"/>
</div>
<p:outputLabel value="Username" for = "usrname" styleClass="login-label"/>
<p:inputText id="usrname" type="text" value="#{loginBean.username}" styleClass="login-input"/>
<p:outputLabel value="Password" for="pass" styleClass="login-label"/>
<p:password id="pass" value="#{loginBean.password}" styleClass="login-input"/>
<p:commandButton value="Login" icon="pi pi-user" action="#{loginBean.login}"
styleClass="login-button" update="@form" process="@form"
ajax="false"/>
</fieldset>
</h:form>
<h:outputStylesheet library="css" name="style.css"/>
</div>
</h:body>
</html>
Bean de Login
@Named("loginBean")
@RequestScoped
public class LoginBean implements Serializable {
private static final long serialVersionUID = 1L;
Logger logger = Logger.getLogger(getClass().getName());
@PersistenceContext(name = "floorConstruction")
private EntityManager manager;
@EJB
private LoginService loginService;
private String username;
private String password;
@PostConstruct
void init() {
logger.log(Level.INFO, "LoginBean Started");
}
public String login() {
logger.log(Level.INFO, "user: " + this.username + " pass: " + this.password);
User user = loginService.checkUser(this.username, this.password);
if (user == null) {
logger.log(Level.INFO,"Usuário não encontrado na primeira tentativa.");
FacesContext.getCurrentInstance().addMessage(null,
new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error", "User not found."));
return null;
}
logger.log(Level.INFO,"Usuário encontrado: " + user.getUsername());
return generateSession(user);
}
private String generateSession(User user) {
FacesContext instance = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) instance.getExternalContext().getRequest();
HttpSession oldSession = request.getSession(false);
if (oldSession != null) {
logger.log(Level.INFO,"Invalidando sessão antiga.");
oldSession.invalidate();
}
HttpSession newSession = request.getSession(true);
logger.log(Level.INFO,"Nova sessão criada com ID: " + newSession.getId());
List<Role> roles = loginService.getRoleByUser(user.getId());
UserSessionObject userSession = new UserSessionObject(user.getEmail(), user.getUsername(),
user.getFirstName(), user.getLastName(), user.getSurname(), roles);
newSession.setAttribute("user", userSession);
logger.log(Level.INFO,"Usuário armazenado na sessão: " + userSession.getUsername());
FacesContext.getCurrentInstance().addMessage(null,
new FacesMessage(FacesMessage.SEVERITY_INFO, "Sucess", "Welcome" + user.getFirstName() + "."));
return "/home.xhtml?faces-redirect=true";
}
public String logout() {
FacesContext instance = FacesContext.getCurrentInstance();
instance.getExternalContext().invalidateSession();
return "/login.xhtml?faces-redirect=true";
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}