From: markt Date: Fri, 8 Aug 2008 20:27:52 +0000 (+0000) Subject: Modify JAASMemoryLoginModule so it conforms to the contract with the JAASRealm regard... X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=94d341fb0d3f3ee78858fb9c9d13f3c4b2def7ca;p=tomcat7.0 Modify JAASMemoryLoginModule so it conforms to the contract with the JAASRealm regarding the representation of roles. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@684081 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/catalina/realm/JAASMemoryLoginModule.java b/java/org/apache/catalina/realm/JAASMemoryLoginModule.java index acab5131c..2e0001840 100644 --- a/java/org/apache/catalina/realm/JAASMemoryLoginModule.java +++ b/java/org/apache/catalina/realm/JAASMemoryLoginModule.java @@ -194,8 +194,19 @@ public class JAASMemoryLoginModule extends MemoryRealm implements LoginModule, R return (false); // Add our Principal to the Subject if needed - if (!subject.getPrincipals().contains(principal)) + if (!subject.getPrincipals().contains(principal)) { subject.getPrincipals().add(principal); + // Add the roles as additional sudjucts as per the contract with the + // JAASRealm + if (principal instanceof GenericPrincipal) { + String roles[] = ((GenericPrincipal) principal).getRoles(); + for (int i = 0; i < roles.length; i++) { + subject.getPrincipals().add( + new GenericPrincipal(null, roles[i], null)); + } + + } + } committed = true; return (true);