源码浅析

阅读: 评论:0

源码浅析

源码浅析

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)

出自【进步*于辰的博客】

在开发或解析API中,使用到一些新类或未研究过其源码的已涉及类,在解析源码中,有一些解读和心得,做个笔记。

文章目录

  • 1、概述
  • 2、常量
    • 2.1 通用权限常量
    • 2.2 所有权限 `AllPermission` 常量
    • 2.3 网络相关权限 `NetPermission` 常量
    • 2.4 运行时权限 `RuntimePermission` 常量
    • 2.5 安全权限 `SecurityPermission` 常量
    • 2.6 `Socket` 套接字权限 `SocketPermission` 常量
  • 3、关于静态内部类`AWT`
    • 3.1 相关权限常量

1、概述

public final class SecurityConstants

SecurityConstants 类是一个安全常量类,定义了很多安全操作(关于“安全操作”,见博文【Java-API简析_java.lang.SecurityManager类(基于 Latest JDK)(浅析源码)】的概述)需要使用的权限常量(static final)。

2、常量

2.1 通用权限常量

// 1、文件删除操作
public static final String FILE_DELETE_ACTION = "delete";
// 2、文件执行操作)
public static final String FILE_EXECUTE_ACTION = "execute";
// 3、文件读操作
public static final String FILE_READ_ACTION = "read";
// 4、文件写操作
public static final String FILE_WRITE_ACTION = "write";
// 5、文件读操作(行读取)
public static final String FILE_READLINK_ACTION = "readlink";
// 6、未知
public static final String SOCKET_RESOLVE_ACTION = "resolve";
// 7、Socket 连接操作
public static final String SOCKET_CONNECT_ACTION = "connect";
// 8、Socket 监听操作
public static final String SOCKET_LISTEN_ACTION = "listen";
// 9、Socket 接收操作
public static final String SOCKET_ACCEPT_ACTION = "accept";
// 10、Socket 接收连接操作
public static final String SOCKET_CONNECT_ACCEPT_ACTION = "connect,accept";
// 11、读写配置操作
public static final String PROPERTY_RW_ACTION = "read,write";
// 12、读配置操作
public static final String PROPERTY_READ_ACTION = "read";
// 13、写配置操作
public static final String PROPERTY_WRITE_ACTION = "write";

2.2 所有权限 AllPermission 常量

public static final AllPermission ALL_PERMISSION = new AllPermission();

2.3 网络相关权限 NetPermission 常量

// 1、指定流处理权限
public static final NetPermission SPECIFY_HANDLER_PERMISSION = new NetPermission("specifyStreamHandler");
// 2、设置代理选择器权限
public static final NetPermission SET_PROXYSELECTOR_PERMISSION = new NetPermission("setProxySelector");
// 3、获取代理选择器权限
public static final NetPermission GET_PROXYSELECTOR_PERMISSION = new NetPermission("getProxySelector");
// 4、设置 Cookie 处理器权限
public static final NetPermission SET_COOKIEHANDLER_PERMISSION = new NetPermission("setCookieHandler");
// 5、获取 Cookie 处理器权限
public static final NetPermission GET_COOKIEHANDLER_PERMISSION = new NetPermission("getCookieHandler");
// 6、设置响应缓存权限
public static final NetPermission SET_RESPONSECACHE_PERMISSION = new NetPermission("setResponseCache");
// 7、获取响应缓存权限
public static final NetPermission GET_RESPONSECACHE_PERMISSION = new NetPermission("getResponseCache");
// 8、设置套接字实现类权限
public static final NetPermission SET_SOCKETIMPL_PERMISSION = new NetPermission("setSocketImpl");

2.4 运行时权限 RuntimePermission 常量

// 1、创建类加载器权限
public static final RuntimePermission CREATE_CLASSLOADER_PERMISSION = new RuntimePermission("createClassLoader");
// 2、访问声明成员权限
public static final RuntimePermission CHECK_MEMBER_ACCESS_PERMISSION = new RuntimePermission("accessDeclaredMembers");
// 3、修改线程权限
public static final RuntimePermission MODIFY_THREAD_PERMISSION = new RuntimePermission("modifyThread");
// 4、修改线程组权限
public static final RuntimePermission MODIFY_THREADGROUP_PERMISSION = new RuntimePermission("modifyThreadGroup");
// 5、获取保护域权限
public static final RuntimePermission GET_PD_PERMISSION = new RuntimePermission("getProtectionDomain");
// 6、获取类加载器权限
public static final RuntimePermission GET_CLASSLOADER_PERMISSION = new RuntimePermission("getClassLoader");
// 7、终止线程权限
public static final RuntimePermission STOP_THREAD_PERMISSION = new RuntimePermission("stopThread");
// 8、获取堆栈跟踪日志权限
public static final RuntimePermission GET_STACK_TRACE_PERMISSION = new RuntimePermission("getStackTrace");

2.5 安全权限 SecurityPermission 常量

// 1、创建访问控制上下文权限
public static final SecurityPermission CREATE_ACC_PERMISSION = new SecurityPermission("createAccessControlContext");
// 2、获取组合域权限
public static final SecurityPermission GET_COMBINER_PERMISSION = new SecurityPermission("getDomainCombiner");
// 3、获取策略权限
public static final SecurityPermission GET_POLICY_PERMISSION = new SecurityPermission("getPolicy");

2.6 Socket 套接字权限 SocketPermission 常量

// 1、本地监听权限
public static final SocketPermission LOCAL_LISTEN_PERMISSION = new SocketPermission("localhost:0", "listen");

3、关于静态内部类AWT

3.1 相关权限常量

private static final String AWTFactory = "sun.awt.AWTPermissionFactory";
private static final PermissionFactory<?> factory = permissionFactory();
public static final Permission TOPLEVEL_WINDOW_PERMISSION = newAWTPermission("showWindowWithoutWarningBanner");
public static final Permission ACCESS_CLIPBOARD_PERMISSION = newAWTPermission("accessClipboard");
public static final Permission CHECK_AWT_EVENTQUEUE_PERMISSION = newAWTPermission("accessEventQueue");
public static final Permission TOOLKIT_MODALITY_PERMISSION = newAWTPermission("toolkitModality");
public static final Permission READ_DISPLAY_PIXELS_PERMISSION = newAWTPermission("readDisplayPixels");
public static final Permission CREATE_ROBOT_PERMISSION = newAWTPermission("createRobot");
public static final Permission WATCH_MOUSE_PERMISSION = newAWTPermission("watchMousePointer");
public static final Permission SET_WINDOW_ALWAYS_ON_TOP_PERMISSION = newAWTPermission("setWindowAlwaysOnTop");
public static final Permission ALL_AWT_EVENTS_PERMISSION = newAWTPermission("listenToAllAWTEvents");
public static final Permission ACCESS_SYSTEM_TRAY_PERMISSION = newAWTPermission("accessSystemTray");

本文暂缓更新。

本文发布于:2024-02-05 06:35:43,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170726418263921.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:源码
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23