Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jetty-jaas/src/main/java/org/eclipse/jetty/jaas/spi/AbstractDatabaseLoginModule.java')
-rw-r--r--jetty-jaas/src/main/java/org/eclipse/jetty/jaas/spi/AbstractDatabaseLoginModule.java42
1 files changed, 38 insertions, 4 deletions
diff --git a/jetty-jaas/src/main/java/org/eclipse/jetty/jaas/spi/AbstractDatabaseLoginModule.java b/jetty-jaas/src/main/java/org/eclipse/jetty/jaas/spi/AbstractDatabaseLoginModule.java
index 1a2e141bca..6fd2660e6b 100644
--- a/jetty-jaas/src/main/java/org/eclipse/jetty/jaas/spi/AbstractDatabaseLoginModule.java
+++ b/jetty-jaas/src/main/java/org/eclipse/jetty/jaas/spi/AbstractDatabaseLoginModule.java
@@ -21,7 +21,6 @@ package org.eclipse.jetty.jaas.spi;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
-import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -59,6 +58,24 @@ public abstract class AbstractDatabaseLoginModule extends AbstractLoginModule
* @throws Exception if unable to get the connection
*/
public abstract Connection getConnection () throws Exception;
+
+
+ public class JDBCUserInfo extends UserInfo
+ {
+ public JDBCUserInfo (String userName, Credential credential)
+ {
+ super(userName, credential);
+ }
+
+
+
+ @Override
+ public List<String> doFetchRoles ()
+ throws Exception
+ {
+ return getRoles(getUserName());
+ }
+ }
@@ -92,8 +109,22 @@ public abstract class AbstractDatabaseLoginModule extends AbstractLoginModule
return null;
}
+
+
+ return new JDBCUserInfo (userName, Credential.getCredential(dbCredential));
+ }
+ }
+
+
+ public List<String> getRoles (String userName)
+ throws Exception
+ {
+ List<String> roles = new ArrayList<String>();
+
+ try (Connection connection = getConnection())
+ {
//query for role names
- List<String> roles = new ArrayList<String>();
+
try (PreparedStatement statement = connection.prepareStatement (rolesQuery))
{
statement.setString (1, userName);
@@ -106,10 +137,13 @@ public abstract class AbstractDatabaseLoginModule extends AbstractLoginModule
}
}
}
-
- return new UserInfo (userName, Credential.getCredential(dbCredential), roles);
+
}
+
+ return roles;
}
+
+
public void initialize(Subject subject,

Back to the top