JavaTM Platform
Standard Ed. 6

java.security
�� Policy

java.lang.Object
  �̳��� java.security.Policy

public abstract class Policy
extends Object

Policy ������ȷ���� Java ����ʱ������ִ�еĴ����Ƿ���Ȩִ�а�ȫ���еIJ�����

�������ʱ��ֻ��һ�� Policy ����װ������ʱ�С�����ͨ������ setPolicy ������װ Policy ���󡣰�װ�� Policy �������ͨ������ getPolicy ������á�

�����δ������ʱ�а�װ�κ� Policy ������ô������ getPolicy ��װĬ�� Policy ʵ�ֵ�ʵ�����˳������Ĭ������ʵ�֣��� ͨ���� "policy.provider" ��ȫ���ԣ��� Java ��ȫ�����ļ��У���ֵ����Ϊ���� Policy ����ʵ�ֵ���ȫ�޶��������Ը���Ĭ�� Policy ʵ�֡�Java ��ȫ�����ļ�λ����Ϊ <JAVA_HOME>/lib/security/java.security ���ļ��С� <JAVA_HOME> ���� java.home ϵͳ���Ե�ֵ����ָ�� JRE �İ�װĿ¼��

Ӧ�ó���������ֱ�����໯ Policy���ṩ���Ƶ�ʵ�֡����⣬ͨ������ijһ�� getInstance ����������ʹ�ñ�׼������Ϊ���������Թ���һ�� Policy �����ʵ�֡�Ĭ�ϲ��������� "JavaPolicy"���йر�׼ Policy �����б�������� Java Cryptography Architecture API Specification & Reference �ĸ�¼ A��

��װ�� Policy ʵ����ͨ��Ĭ�ϰ�װ����� setPolicy��������Ҫȷ��ִ�д��루��װ�� ProtectionDomain �У��Ƿ����ִ���ܱ��� SecurityManager ����ʱ��Java ����ʱ�������� implies��Policy ������λ�ȡ����������� Policy ʵ�ֱ����������������ݿ��Դ洢�ڴ� ASCII �ļ��С�Policy ������л��������ļ��С����ݿ��еȵȡ�

refresh ����ʹ Policy ����ˢ��/���������ݡ� �˲�����ʵ���йء����磬��� Policy ���������ݴ洢�������ļ��У���ô���� refresh �������ض����Ʋ����ļ��������֧��ˢ�²�������ô�˷�����ִ���κβ�����ע�⣬ˢ�²��Զ��ض� ProtectionDomain �е��������Ч����ȡ���� Policy �ṩ�ߵ� implies ����ʵ�ּ��� PermissionCollection ������ԡ�

������
Provider, ProtectionDomain, Permission

Ƕ����ժҪ
static interface Policy.Parameters
          �����ʾ���� Policy �����ı�ǽӿڡ�
 
�ֶ�ժҪ
static PermissionCollection UNSUPPORTED_EMPTY_COLLECTION
          һ���յ�ֻ�� PermissionCollection ʵ����
 
���췽��ժҪ
Policy()
           
 
����ժҪ
static Policy getInstance(String type, Policy.Parameters params)
          ����ָ�����͵� Policy ����
static Policy getInstance(String type, Policy.Parameters params, Provider provider)
          ����ָ�����͵� Policy ����
static Policy getInstance(String type, Policy.Parameters params, String provider)
          ����ָ�����͵� Policy ����
 Policy.Parameters getParameters()
          ���� Policy ������
 PermissionCollection getPermissions(CodeSource codesource)
          ����һ�� PermissionCollection ��������������ָ�� CodeSource ��Ȩ�޼���
 PermissionCollection getPermissions(ProtectionDomain domain)
          ����һ�� PermissionCollection ��������������ָ�� ProtectionDomain ��Ȩ�޼���
static Policy getPolicy()
          ���ذ�װ�� Policy ����
 Provider getProvider()
          ���ش� Policy �� Provider��
 String getType()
          ���ش� Policy �����͡�
 boolean implies(ProtectionDomain domain, Permission permission)
          �������� ProtectionDomain ��Ȩ�޵�ȫ�ֲ��ԣ��������Ƿ������˸�Ȩ�ޡ�
 void refresh()
          ˢ��/���¼��ز������á�
static void setPolicy(Policy p)
          ����ϵͳ��Χ�� Policy ����
 
���� java.lang.Object �̳еķ���
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

�ֶ���ϸ��Ϣ

UNSUPPORTED_EMPTY_COLLECTION

public static final PermissionCollection UNSUPPORTED_EMPTY_COLLECTION
һ���յ�ֻ�� PermissionCollection ʵ����

�����°汾��ʼ��
1.6
���췽����ϸ��Ϣ

Policy

public Policy()
������ϸ��Ϣ

getPolicy

public static Policy getPolicy()
���ذ�װ�� Policy ���󡣴�ֵ��Ӧ�ñ����棬��Ϊ������ͨ������ setPolicy ���ġ��˷�������ʹ�� SecurityPermission("getPolicy") Ȩ�޵��� SecurityManager.checkPermission ����֤���Ի�ȡ Policy ����

���أ�
��װ�� Policy��
�׳���
SecurityException - �����ȫ���������ڲ����� checkPermission ������������ȡ Policy ����
������
SecurityManager.checkPermission(Permission), setPolicy(java.security.Policy)

setPolicy

public static void setPolicy(Policy p)
����ϵͳ��Χ�� Policy ���󡣴˷�������ʹ�� SecurityPermission("setPolicy") Ȩ�޵��� SecurityManager.checkPermission ����֤�������� Policy��

������
p - �µ�ϵͳ Policy ����
�׳���
SecurityException - �����ȫ���������ڲ����� checkPermission �������������� Policy��
������
SecurityManager.checkPermission(Permission), getPolicy()

getInstance

public static Policy getInstance(String type,
                                 Policy.Parameters params)
                          throws NoSuchAlgorithmException
����ָ�����͵� Policy ����

�˷�������ѡ Provider ��ʼ��������ע�ᰲȫ�ṩ���б�������һ����װ PolicySpi ʵ�ֵ��� Policy ���󣬸�ʵ��ȡ�Ե�һ��֧��ָ�����͵� Provider��

ע�⣬��ע���ṩ���б�����ͨ�� Security.getProviders() ������á�

������
type - ָ���� Policy ���͡��йر�׼ Policy �����б�������� Java Cryptography Architecture API Specification & Reference �ĸ�¼ A��
params - Policy �IJ���������Ϊ null��
���أ�
�µ� Policy ����
�׳���
SecurityException - �����������Ȩ��ȡָ�����͵� Policy ʵ����
NullPointerException - ���ָ������Ϊ null��
IllegalArgumentException - ���ѡ�� Provider �� PolicySpi ʵ�ֲ�����ָ���IJ�����
NoSuchAlgorithmException - ���û���κ� Provider ֧��ָ�����͵� PolicySpi ʵ�֡�
�����°汾��ʼ��
1.6
������
Provider

getInstance

public static Policy getInstance(String type,
                                 Policy.Parameters params,
                                 String provider)
                          throws NoSuchProviderException,
                                 NoSuchAlgorithmException
����ָ�����͵� Policy ����

����һ����װ PolicySpi ʵ�ֵ��� Policy ���󣬸�ʵ��ȡ��ָ���ṩ�ߡ�ע�⣬ָ�����ṩ�߱������ڰ�ȫ�ṩ���б���ע�ᡣ

ע�⣬��ע���ṩ���б�����ʹ�� Security.getProviders() ������á�

������
type - ָ���� Policy ���͡��йر�׼ Policy �����б�������� Java Cryptography Architecture API Specification & Reference �ĸ�¼ A��
params - Policy �IJ���������Ϊ null��
provider - �ṩ�ߡ�
���أ�
�µ� Policy ����
�׳���
SecurityException - �����������Ȩ��ȡָ�����͵� Policy ʵ����
NullPointerException - ���ָ������Ϊ null��
IllegalArgumentException - ���ָ���ṩ��Ϊ null ��գ�����ָ���ṩ�ߵ� PolicySpi ʵ�ֲ�����ָ���IJ�����
NoSuchProviderException - ���ָ���ṩ��û���ڰ�ȫ�ṩ���б���ע�ᡣ
NoSuchAlgorithmException - ���ָ���ṩ�߲�֧��ָ�����͵� PolicySpi ʵ�֡�
�����°汾��ʼ��
1.6
������
Provider

getInstance

public static Policy getInstance(String type,
                                 Policy.Parameters params,
                                 Provider provider)
                          throws NoSuchAlgorithmException
����ָ�����͵� Policy ����

����һ����װ PolicySpi ʵ�ֵ��� Policy ���󣬸�ʵ��ȡ��ָ�� Provider ����ע�⣬ָ���� Provider �����������ṩ���б���ע�ᡣ

������
type - ָ���� Policy ���͡��йر�׼ Policy �����б�������� Java Cryptography Architecture API Specification & Reference �ĸ�¼ A��
params - Policy �IJ���������Ϊ null��
provider - Provider��
���أ�
�µ� Policy ����
�׳���
SecurityException - �����������Ȩ��ȡָ�����͵� Policy ʵ����
NullPointerException - ���ָ������Ϊ null��
IllegalArgumentException - ���ָ���� Provider Ϊ null������ָ�� Provider �� PolicySpi ʵ�ֲ�����ָ���IJ�����
NoSuchAlgorithmException - ���ָ���� Provider ��֧��ָ�����͵� PolicySpi ʵ�֡�
�����°汾��ʼ��
1.6
������
Provider

getProvider

public Provider getProvider()
���ش� Policy �� Provider��

ֻ��ͨ������ Policy.getInstance ��ȡ�� Policy ʵ������ Provider������˷������� null��

���أ�
�� Policy �� Provider������ null��
�����°汾��ʼ��
1.6

getType

public String getType()
���ش� Policy �����͡�

ֻ��ͨ������ Policy.getInstance ��ȡ�� Policy ʵ���������͡�����˷������� null��

���أ�
�� Policy �����ͣ����� null��
�����°汾��ʼ��
1.6

getParameters

public Policy.Parameters getParameters()
���� Policy ������

ֻ��ͨ������ Policy.getInstance ��ȡ�� Policy ʵ�����в���������˷������� null��

���أ�
Policy ���������� null��
�����°汾��ʼ��
1.6

getPermissions

public PermissionCollection getPermissions(CodeSource codesource)
����һ�� PermissionCollection ��������������ָ�� CodeSource ��Ȩ�޼���

����Ӧ�ó���Ҫ���ô˷�������˲������в���ʵ�ֶ�֧�ִ˲����� Ӧ�ó���ֻ������ implies ����ִ�в��Լ�顣���Ӧ�ó��򲻵ò����� getPermissions ��������ô��Ӧ�õ��� getPermissions(ProtectionDomain)��

�˷�����Ĭ��ʵ�ַ��� Policy.UNSUPPORTED_EMPTY_COLLECTION���������ʵ�ֿ��Է������� CodeSource ��Ȩ���飬�������д�˷�����

������
codesource - �����践�� PermissionCollection �� CodeSource��
���أ�
����ָ�� CodeSource ��Ȩ�޼������֧�ִ˲�������ô���ص�Ȩ�޼��������µĿɱ�ʵ��������������֧�ֶ��� Permission ���͡������֧�ִ˲������򷵻� Policy.UNSUPPORTED_EMPTY_COLLECTION��

getPermissions

public PermissionCollection getPermissions(ProtectionDomain domain)
����һ�� PermissionCollection ��������������ָ�� ProtectionDomain ��Ȩ�޼���

����Ӧ�ó���Ҫ���ô˷�������˲������в���ʵ�ֶ�֧�ִ˲����� Ӧ�ó���Ӧ���� implies ����ִ�в��Լ�顣

�˷�����Ĭ��ʵ�����Ȼ�ȡ getPermissions(CodeSource)��CodeSource ȡ��ָ���� ProtectionDomain�����ص�Ȩ�ޣ��Լ�λ��ָ�� ProtectionDomain �е�Ȩ�ޡ� Ȼ�����������ЩȨ�ޣ�����һ���µ� PermissionCollection �����з��ء���� getPermissions(CodeSource) ���� Policy.UNSUPPORTED_EMPTY_COLLECTION����ô�˷�����һ���µ� PermissionCollection �����з��ذ�����ָ�� ProtectionDomain �е�Ȩ�ޡ�

�������ʵ��֧�ַ������� ProtectionDomain ��Ȩ���飬�������д�˷�����

������
domain - �����践�� PermissionCollection �� ProtectionDomain��
���أ�
����ָ�� ProtectionDomain ��Ȩ�޼������֧�ִ˲�������ô���ص�Ȩ�޼��������µĿɱ�ʵ��������������֧�ֶ��� Permission ���͡������֧�ִ˲������򷵻� Policy.UNSUPPORTED_EMPTY_COLLECTION��
�����°汾��ʼ��
1.4
������
ProtectionDomain, SecureClassLoader

implies

public boolean implies(ProtectionDomain domain,
                       Permission permission)
�������� ProtectionDomain ��Ȩ�޵�ȫ�ֲ��ԣ��������Ƿ������˸�Ȩ�ޡ�

������
domain - Ҫ���Ե� ProtectionDomain
permission - Ҫ�����䰵��Ȩ�޵� Permission ����
���أ�
��� "permission" ������� ProtectionDomain �����Ӽ����򷵻� true��
�����°汾��ʼ��
1.4
������
ProtectionDomain

refresh

public void refresh()
ˢ��/���¼��ز������á��˷�������Ϊȡ����ʵ�֡����磬�Ի����ļ��IJ��Ե��� refresh ���������¶�ȡ���ļ���

�˷�����Ĭ��ʵ�ֲ�ִ���κβ������������ʵ��֧��ˢ�²������������д�˷�����


JavaTM Platform
Standard Ed. 6

�ύ��������
�йظ���� API �ο����ϺͿ�����Ա�ĵ�������� Java SE ������Ա�ĵ������ĵ���������ϸ�ġ����򿪷���Ա���������Լ�������������ﶨ�塢ʹ�ü��ɺ͹�������ʾ����

��Ȩ���� 2007 Sun Microsystems, Inc. ��������Ȩ���� ����������֤��������������ĵ����·ַ�������