in core/src/main/java/org/apache/shiro/realm/text/TextConfigurationRealm.java [177:211]
protected void processUserDefinitions(Map<String, String> userDefs) {
if (userDefs == null || userDefs.isEmpty()) {
return;
}
for (Map.Entry<String, String> entry : userDefs.entrySet()) {
String username = entry.getKey();
String value = entry.getValue();
String[] passwordAndRolesArray = StringUtils.split(value);
// the first token is expected to be the password.
String password = passwordAndRolesArray[0];
SimpleAccount account = getUser(username);
if (account == null) {
account = new SimpleAccount(username, password, getName());
add(account);
}
account.setCredentials(password);
if (passwordAndRolesArray.length > 1) {
for (int i = 1; i < passwordAndRolesArray.length; i++) {
String rolename = passwordAndRolesArray[i];
account.addRole(rolename);
SimpleRole role = getRole(rolename);
if (role != null) {
account.addObjectPermissions(role.getPermissions());
}
}
} else {
account.setRoles(null);
}
}
}