Некоторое время я разработал мое веб-приложение Wildfly 8.1 на локальном хосте (Windows 8.1) и захотел развернуть его на своем сервере Ubuntu до Wildfly 8.2.Ошибка модуля входа в систему Wildfly
Локальная форма входа работает с ManagedBean, но на моем производственном сервере это терпит неудачу. Зачем?
- Работа с базой данных работает.
Таким образом, я подразумеваю, что он имеет какое-то отношение к форме-login, настроенной в моем файле standalone.xml. Что, по-видимому, ОЧЕНЬ ТАКОЕ, как в моем localhost standalone.xml файле. Я проверил, Wildfly 8.2 на производстве действительно использует этот файл standalone.xml! Выполнение запроса принципалов к производственной базе данных (тот же поставщик и версия, что и на моем localhost) возвращает ровно 1 строку. То же, что и в локальной локальной среде.
Но почему этот principalsQuery
модуль входа в систему не работает? Кто-нибудь подскажет?
<login-module code="Database" flag="required">
<module-option name="dsJndiName" value="java:jboss/datasources/CcmsDS"/>
<module-option name="principalsQuery" value="SELECT password FROM User WHERE username=?"/>
<module-option name="rolesQuery" value="SELECT role, 'Roles' FROM User JOIN User_Role ON User.id = User_Role.users_id JOIN role ON User_Role.roles_id = Role.id WHERE username=?"/>
</login-module>
Могу ли я каким-либо образом указать точную причину на моем сервере сервера prodcution?
Вот ManagedBean код:
try {
request.login(getUsername(), getPassword());
} catch (ServletException e) {
LOGGER.info("Failed to login with username " + username + " and password. " + e.getMessage() + ". ");
e.printStackTrace();
facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, "Login failed",
"Login failed when trying to authenticate with user " + getUsername() + "."));
// If this fails, return null.
return null;
}
... и здесь сообщение об ошибке от HttpServletRequestImpl:
2015-04-05 23:03:06,320 ERROR [stderr] (default task-12) L:71 javax.servlet.ServletException: UT010031: Login failed
2015-04-05 23:03:06,320 ERROR [stderr] (default task-12) L:71 at io.undertow.servlet.spec.HttpServletRequestImpl.login(HttpServletRequestImpl.java:440)
2015-04-05 23:03:06,321 ERROR [stderr] (default task-12) L:71 at com.johndoe.controller.security.LoginController.login(LoginController.java:239)
Разрешение: РолиQuery не чувствителен к регистру (Windows -> Ubuntu). Я исправил его, и запрос prinicipals работал. Не знаю, почему они взаимосвязаны. Надеюсь, это тоже поможет кому-то другому. – feder
Я не вижу, где вы указываете, какой сервер базы данных вы используете, для mysql имена таблиц чувствительны к регистру, поскольку имена файлов чувствительны к регистру в Linux, но не в Windows –