X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=eclipse%2Forg.argeo.cms.servlet%2Fsrc%2Forg%2Fargeo%2Fcms%2Fwebsocket%2Fjavax%2Fserver%2FWebSocketView.java;fp=eclipse%2Forg.argeo.cms.servlet%2Fsrc%2Forg%2Fargeo%2Fcms%2Fwebsocket%2Fjavax%2Fserver%2FWebSocketView.java;h=0000000000000000000000000000000000000000;hb=4e548693acc16f97b74eaaa95d6841054a172b85;hp=a5da88be9235247bd140369ca5453c6bebbec72b;hpb=7b242851c0094d13cbaca5b68261ad92c873a59f;p=lgpl%2Fargeo-commons.git diff --git a/eclipse/org.argeo.cms.servlet/src/org/argeo/cms/websocket/javax/server/WebSocketView.java b/eclipse/org.argeo.cms.servlet/src/org/argeo/cms/websocket/javax/server/WebSocketView.java deleted file mode 100644 index a5da88be9..000000000 --- a/eclipse/org.argeo.cms.servlet/src/org/argeo/cms/websocket/javax/server/WebSocketView.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.argeo.cms.websocket.javax.server; - -import java.security.Principal; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; - -import javax.security.auth.Subject; -import javax.security.auth.x500.X500Principal; - -import org.osgi.service.useradmin.Role; - -/** - * Abstraction of a single Frontend view, that is a web browser page. There can - * be multiple views within one single authenticated HTTP session. - */ -public class WebSocketView { - private final String uid; - private Subject subject; - - public WebSocketView(Subject subject) { - this.uid = UUID.randomUUID().toString(); - this.subject = subject; - } - - public String getUid() { - return uid; - } - - public Set getRoles() { - return roles(subject); - } - - public boolean isInRole(String role) { - return getRoles().contains(role); - } - - public void checkRole(String role) { - checkRole(subject, role); - } - - public final static Set roles(Subject subject) { - Set roles = new HashSet(); - X500Principal principal = subject.getPrincipals(X500Principal.class).iterator().next(); - String username = principal.getName(); - roles.add(username); - for (Principal group : subject.getPrincipals()) { - if (group instanceof Role) - roles.add(group.getName()); - } - return roles; - } - - public static void checkRole(Subject subject, String role) { - Set roles = roles(subject); - if (!roles.contains(role)) - throw new IllegalStateException("User is not in role " + role); - } - -}