22,24c22
< import java.util.ArrayList;
< import java.util.Iterator;
< import java.util.List;
---
> import java.util.*;
252,268c250
< roleClasses.clear();
< String temp = this.roleClassNames;
< if (temp == null) {
< return;
< }
< while (true) {
< int comma = temp.indexOf(',');
< if (comma < 0) {
< break;
< }
< roleClasses.add(temp.substring(0, comma).trim());
< temp = temp.substring(comma + 1);
< }
< temp = temp.trim();
< if (temp.length() > 0) {
< roleClasses.add(temp);
< }
---
> parseClassNames(roleClassNames, roleClasses);
271c253,281
<
---
> /**
> * Parses a comma-delimited list of class names, and store the class names
> * in the provided List. Each class must implement java.security.Principal
.
> *
> * @param classNamesString a comma-delimited list of fully qualified class names.
> * @param classNamesList the list in which the class names will be stored.
> * The list is cleared before being populated.
> */
> protected void parseClassNames(String classNamesString, List classNamesList) {
> classNamesList.clear();
> if (classNamesString == null) return;
>
> String[] classNames = classNamesString.split("[ ]*,[ ]*");
> for (int i=0; i if (classNames[i].length()==0) continue;
> try {
> Class principalClass = Class.forName(classNames[i]);
> if (Principal.class.isAssignableFrom(principalClass)) {
> classNamesList.add(classNames[i]);
> } else {
> log.error("Class "+classNames[i]+" is not implementing "+
> "java.security.Principal! Class not added.");
> }
> } catch (ClassNotFoundException e) {
> log.error("Class "+classNames[i]+" not found! Class not added.");
> }
> }
> }
>
292,308c302
< userClasses.clear();
< String temp = this.userClassNames;
< if (temp == null) {
< return;
< }
< while (true) {
< int comma = temp.indexOf(',');
< if (comma < 0) {
< break;
< }
< userClasses.add(temp.substring(0, comma).trim());
< temp = temp.substring(comma + 1);
< }
< temp = temp.trim();
< if (temp.length() > 0) {
< userClasses.add(temp);
< }
---
> parseClassNames(userClassNames, userClasses);