
com.groupbyinc.flux.bootstrap.Security.class Maven / Gradle / Ivy
???? 3 &com/groupbyinc/flux/bootstrap/Security java/lang/Object
Security.java java/util/Map$Entry
java/util/Map Entry java/security/Policy$Parameters java/security/Policy
Parameters ()V
this (Lcom/groupbyinc/flux/bootstrap/Security; configure )(Lcom/groupbyinc/flux/env/Environment;Z)V java/lang/Exception &com/groupbyinc/flux/bootstrap/ESPolicy createPermissions B(Lcom/groupbyinc/flux/env/Environment;)Ljava/security/Permissions;
getPluginPermissions 6(Lcom/groupbyinc/flux/env/Environment;)Ljava/util/Map; !
" 7(Ljava/security/PermissionCollection;Ljava/util/Map;Z)V $
% setPolicy (Ljava/security/Policy;)V ' (
) com/groupbyinc/flux/SecureSM +
, java/lang/System . setSecurityManager (Ljava/lang/SecurityManager;)V 0 1
/ 2 selfTest 4
5 environment %Lcom/groupbyinc/flux/env/Environment; filterBadDefaults Z java/io/IOException ; &java/security/NoSuchAlgorithmException = .Lcom/groupbyinc/flux/common/SuppressForbidden; reason proper use of URL java/lang/Throwable B java/util/HashMap D
E java/util/ArrayList G
H #com/groupbyinc/flux/env/Environment J pluginsFile ()Ljava/nio/file/Path; L M
K N java/nio/file/LinkOption P java/nio/file/Files R exists 2(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z T U
S V newDirectoryStream 5(Ljava/nio/file/Path;)Ljava/nio/file/DirectoryStream; X Y
S Z java/nio/file/DirectoryStream \ iterator ()Ljava/util/Iterator; ^ _ ] ` java/util/List b java/util/Iterator d hasNext ()Z f g e h next ()Ljava/lang/Object; j k e l java/nio/file/Path n add (Ljava/lang/Object;)Z p q c r close t ] u
addSuppressed (Ljava/lang/Throwable;)V w x
C y modulesFile { M
K | c ` plugin-security.policy resolve ((Ljava/lang/String;)Ljava/nio/file/Path; ? ? o ? *.jar ? G(Ljava/nio/file/Path;Ljava/lang/String;)Ljava/nio/file/DirectoryStream; X ?
S ?
toRealPath 1([Ljava/nio/file/LinkOption;)Ljava/nio/file/Path; ? ? o ? toUri ()Ljava/net/URI; ? ? o ? java/net/URI ? toURL ()Ljava/net/URL; ? ?
? ? size ()I ? ? c ? java/net/URL ? toArray (([Ljava/lang/Object;)[Ljava/lang/Object; ? ? c ? [Ljava/net/URL; ?
readPolicy 5(Ljava/net/URL;[Ljava/net/URL;)Ljava/security/Policy; ? ?
? getFile ()Ljava/lang/String; ? ?
? ? put 8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; ? ? ? java/lang/IllegalStateException ? java/lang/StringBuilder ?
? 5per-plugin permissions already granted for jar file: ? append -(Ljava/lang/String;)Ljava/lang/StringBuilder; ? ?
? ? -(Ljava/lang/Object;)Ljava/lang/StringBuilder; ? ?
? ? toString ? ?
? ? (Ljava/lang/String;)V ?
? ? java/util/Collections ? unmodifiableMap (Ljava/util/Map;)Ljava/util/Map; ? ?
? ? plugin Ljava/nio/file/Path; stream 5Ljava/nio/file/DirectoryStream; Ljava/nio/file/DirectoryStream; jar jarStream url Ljava/net/URL; codebases Ljava/util/List; Ljava/util/List; policy Ljava/security/Policy;
policyFile map 9Ljava/util/Map; Ljava/util/Map; pluginsAndModules &Ljava/util/List; 3accesses fully qualified URLs to configure security java/net/URISyntaxException ? toURI ? ?
? ? 'com/groupbyinc/flux/common/io/PathUtils ? get $(Ljava/net/URI;)Ljava/nio/file/Path; ? ?
? ? getFileName ? M o ? o ? codebase. ?
? ? setProperty 8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; ? ?
/ ?
JavaPolicy ? java/security/URIParameter ? (Ljava/net/URI;)V ?
? ? getInstance K(Ljava/lang/String;Ljava/security/Policy$Parameters;)Ljava/security/Policy; ? ?
?
clearProperty &(Ljava/lang/String;)Ljava/lang/String;
/ "java/lang/IllegalArgumentException unable to parse policy file ` ` *(Ljava/lang/String;Ljava/lang/Throwable;)V
shortName Ljava/lang/String; e Ljava/lang/Exception; java/security/Permissions
addClasspathPermissions (Ljava/security/Permissions;)V
addFilePermissions C(Ljava/security/Permissions;Lcom/groupbyinc/flux/env/Environment;)V
settings 0()Lcom/groupbyinc/flux/common/settings/Settings;
K addBindPermissions L(Ljava/security/Permissions;Lcom/groupbyinc/flux/common/settings/Settings;)V !
" Ljava/security/Permissions; %com/groupbyinc/flux/bootstrap/JarHell% parseClassPath ()[Ljava/net/URL;'(
&) java/lang/RuntimeException+ x
,- java/io/FilePermission/
read,readlink1 '(Ljava/lang/String;Ljava/lang/String;)V 3
04 (Ljava/security/Permission;)V p6
7 isDirectory9 U
S:
getFileSystem ()Ljava/nio/file/FileSystem;<= o> java/nio/file/FileSystem@ getSeparatorB ?
AC -E path Ljava/net/URISyntaxException; path.homeI binFileK M
KL addPath V(Ljava/security/Permissions;Ljava/lang/String;Ljava/nio/file/Path;Ljava/lang/String;)VNO
P libFileR M
KS path.pluginsU path.confW
configFileY M
KZ path.scripts\ scriptsFile^ M
K_ java.io.tmpdira tmpFilec M
Kd read,readlink,write,deletef path.logsh logsFilej M
Kk sharedDataFilem M
Kn path.shared_datap dataFiles ()[Ljava/nio/file/Path;rs
Kt [Ljava/nio/file/Path;v path.datax dataWithClusterFileszs
K{ repoFiles}s
K~ path.repo? pidFile? M
K? delete? http.netty.port? http.port? 9200-9300? ,com/groupbyinc/flux/common/settings/Settings? ? ?
?? java/net/SocketPermission? *:? listen,resolve?
?4 transport.profiles? getGroups $(Ljava/lang/String;Z)Ljava/util/Map;??
?? default? containsKey? q ? (Ljava/util/Map;)V ?
E? EMPTY .Lcom/groupbyinc/flux/common/settings/Settings;?? ?? java/lang/String? entrySet ()Ljava/util/Set;?? ?
java/util/Set?? ` getValue? k ? getKey? k ? port? transport.tcp.port? 9300-9400? equals? q
?? "com/groupbyinc/flux/common/Strings? hasLength (Ljava/lang/String;)Z??
?? ?
?? profileSettings name transportRange valid entry WLjava/util/Map$Entry; Ljava/util/Map$Entry; httpRange profiles QLjava/util/Map; ensureDirectoryExists (Ljava/nio/file/Path;)V??
? Unable to access '? ' (? )?
? Ljava/io/IOException; configurationName permissions (java/nio/file/FileAlreadyExistsException? provider (()Ljava/nio/file/spi/FileSystemProvider;??
A? java/nio/file/AccessMode? READ Ljava/nio/file/AccessMode;?? ?? $java/nio/file/spi/FileSystemProvider? checkAccess 2(Ljava/nio/file/Path;[Ljava/nio/file/AccessMode;)V??
?? %java/nio/file/attribute/FileAttribute? createDirectories R(Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;??
S? #java/nio/file/NotDirectoryException?
? ?
<