2015-04-05 2 views
0

Некоторое время я разработал мое веб-приложение 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) 
+0

Разрешение: РолиQuery не чувствителен к регистру (Windows -> Ubuntu). Я исправил его, и запрос prinicipals работал. Не знаю, почему они взаимосвязаны. Надеюсь, это тоже поможет кому-то другому. – feder

+0

Я не вижу, где вы указываете, какой сервер базы данных вы используете, для mysql имена таблиц чувствительны к регистру, поскольку имена файлов чувствительны к регистру в Linux, но не в Windows –

ответ

1

Решение: rolesQuery не чувствительны к регистру (Windows -> Ubuntu). Я исправил его, и запрос prinicipals работал. Не знаю, почему они взаимосвязаны. Надеюсь, это тоже поможет кому-то другому.