JAAS - isUserInRole возвращает false для всех ролей в Tomcat
-
13-09-2019 - |
Вопрос
Вот в чем проблема,
Область JAAS подключается к базе данных нормально, имя пользователя и пароль совпадают, сеанс аутентифицирован.ОДНАКО ни одна из ролей, похоже, не попадает в Главную.Функция isInUserRole Tomcat возвращает false для каждой роли, и служба безопасности tomcat их тоже не видит.
Вот конфигурация области в Server.xml
<Realm className="org.apache.catalina.realm.JAASRealm"
appName="TomcatTimedLogin"
userClassName="com.tagish.auth.TypedPrincipal"
roleClassNames="org.ovasp.java.jaas.RolePrincipal" />
Вот файл login.config
TomcatTimedLogin
{
org.owasp.java.jaas.TomcatTimedLogin required
useDS=true
dsJNDI="jdbc/resourceName"
dbDriver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
dbURL="jdbc:sqlserver://server\\DBSERVER;databaseName=DBName"
dbUser="username"
dbPassword="password"
debug=true
loginTable="loginTable"
clippingLevel="3"
interval="10"
loginQuery="SELECT UserID,Password FROM Users WHERE LogonUserName=? AND RetirementDate is null"
rolesQuery="SELECT Role.RoleDescription FROM User_Role,Role WHERE User_Role.UserID=? AND User_Role.RoleID=Role.RoleID";
};
И в catalina.properties я ссылаюсь на конфигурацию следующим образом
java.security.auth.login.config=file:///C:/config/login.config
При запуске приложения я получаю следующее сообщение в выходных данных отладки, не уверен, почему, поскольку все классы должны быть доступны серверу
SEVERE: Class org.ovasp.java.jaas.RolePrincipal not found! Class not added.
Будем признательны за любую помощь.Я уже читал пост за постом и учебник за учебником, а те, у кого действительно есть эта проблема, не опубликовали решение.
Кстати, я использую Tomcat 5.5, не мой выбор, устаревший код, вы знаете, как это бывает!Я также использую модуль входа OWASP (OWASPJaasLoginModule.jar).Этот jar-файл находится в каталоге server/lib.
Решение
Ладно...Я решил это сам...опять ЖЕ, ОЧЕНЬ ГЛУПО!Если бы это был мой код, я бы разозлился на себя, но это не так, и после 4 дней возни с этим приложением я почти сыт по горло.Проблема заключалась в том, что КЛАСС не является
org.ovasp.java.jaas.RolePrincipal
его
org.owasp.java.jaas.RolePrincipal
ГЛУПЫЙ!!!