Support groups from external authentication resources

This commit is contained in:
René Pfeuffer
2019-02-14 15:42:27 +01:00
parent 733e719194
commit 75239a0104
4 changed files with 78 additions and 16 deletions

View File

@@ -8,6 +8,7 @@ import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.subject.Subject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import sonia.scm.group.GroupNames;
import sonia.scm.security.*;
import javax.servlet.http.HttpServletRequest;
@@ -91,6 +92,11 @@ public class AuthenticationResource {
tokenBuilder.scope(Scope.valueOf(authentication.getScope()));
}
GroupNames groupNames = subject.getPrincipals().oneByType(GroupNames.class);
if (groupNames != null && groupNames.isExternal()) {
tokenBuilder.groups(groupNames.getCollection().toArray(new String[]{}));
}
AccessToken token = tokenBuilder.build();
if (authentication.isCookie()) {