Вот проблема,
Область 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" />
Вот логин.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.