Article View: cn.bbs.comp.lang.java
Article #21143��ת�ء�JAAS:����Java��ȫ����2
From: Reoal Living In Java
Date: Thu, 11 Dec 2003 09:58
Date: Thu, 11 Dec 2003 09:58
168 lines
11311 bytes
11311 bytes
�ͻ��˺ͷ������˵�JAAS
����������Ա���Խ�JAASӦ�õ��ͻ��˺ͷ������ˡ��ڿͻ���ʹ��JAAS�ܼ�
���ڷ�������ʹ��JAASʱ���Ҫ����һЩ��Ŀǰ��Ӧ�÷������г��е�JAAS��
Ʒ�����Ǻ�һ�£�ʹ��JAAS��J2EEӦ�÷�������һЩϸ�IJ������JBossSx
ʹ���Լ��Ľṹ����JAAS���ɵ���һ�����İ�ȫ����У�����ȻWebLogic 6
.xҲʹ����JAAS����ȫ���ȴ��ȫ��һ��
�����������ܹ����Ϊʲô������Ҫ�ӿͻ��˺ͷ������˵ĽǶ�����JAAS�ˡ�
���ǽ��ں����г���������µ����ӡ�Ϊ��ʹ�������˵����ӳ����Ӽ�
����ʹ����ResinӦ�÷�������
��������JAAS��
������ʹ��JAAS֮ǰ����������Ҫ��װJAAS����J2SE 1.4���Ѿ�������JAAS��
������J2SE 1.3��û�С������ϣ��ʹ��J2SE 1.3������Դ�SUN�Ĺٷ�վ����
����JAAS������ȷ��װ��JAAS������ڰ�װĿ¼��libĿ¼���ҵ�jaas.jar��
����Ҫ����·������Classpath�С���ע������㰲װ��Ӧ�÷����������о���
��������JAAS�����Ķ�Ӧ�÷������İ����ĵ��Ի�ø���ϸ����Ϣ������Java
��ȫ�����ļ�java.security�У�����Ըı�һЩ��JAAS��ص�ϵͳ���ԡ�����
�������ڣ�jre_home��/lib/securityĿ¼�С�
������Ӧ�ó�����ʹ��JAAS��֤ͨ�����漰�����¼������裺
����1. ����һ��LoginContext��ʵ��
����2. Ϊ���ܹ���úʹ�����֤��Ϣ����һ��CallBackHandler������Ϊ����
����LoginContext��
����3. ͨ�����LoginContext��login����������������֤��
����4. ͨ��ʹ��login�����������ص�Subject����ʵ��һЩ����Ĺ��ܣ�����
��¼�ɹ�����
����������һ�������ӣ�
LoginContext lc = new LoginContext("MyExample");
try {
lc.login();
} catch (LoginException) {
// Authentication failed.
}
// Authentication successful, we can now continue.
// We can use the returned Subject if we like.
Subject sub = lc.getSubject();
Subject.doAs(sub, new MyPrivilegedAction());
������������δ���ʱ����̨���������µĹ�����
����1. ����ʼ��ʱ��LoginContext����������JAAS�����ļ����ҵ�MyExample
�Ȼ���߸�������ݾ����ü����ĸ�LoginModule���μ�ͼ������
����2. �ڵ�¼ʱ��LoginContext�������ÿ��LoginModule�����login������
����
����3. ÿ��login��������������֤��������һ��CallbackHandle����
����4. CallbackHandle����ͨ��ʹ��һ������CallBack����ͬ�û����н���
������û����롣
����5. ��һ���µ�Subject������������֤��Ϣ��
�������ǽ��Դ�������һ���Ľ��͡���������֮ǰ���������ȿ��������漰��
�ĺ���JAAS��ͽӿڡ���Щ����Ա���Ϊ�������ͣ�
������ͨ���� Subject��Principal��ƾ֤
������֤ LoginContext��LoginModule��CallBackHandler��Callback
������Ȩ Policy��AuthPermission��PrivateCredentialPermission
���������оٵ���ͽӿڴ������javax.security.auth���С���J2SE 1.4��
������һЩ�ӿڵ�ʵ������com.sun.security.auth���С�
������ͨ���ͣ�Subject��Principal��ƾ֤
����Subject������һ����֤ʵ�壬��������û�������Ա��Web�����豸
��������Ĺ�̡���������������͵İ�ȫ��Ϣ��
���� ��ݣ�Identities������һ������Principal�����ʾ
���� ����ƾ֤��Public credentials����������ƻ���Կ
���� ˽��ƾ֤��Private credentials������������˽����Կ
����Principal��������Subject�������ݡ�����ʵ����java.security.Principal
��java.io.Serializable�ӿڡ���Subject���У�����Ҫ�ķ�����getName����
���÷�������һ�������ơ���Subject�����а��˶��Principal������
�������ӵ�ж����ơ����ڵ�¼��ơ����֤�ź�Email��ַ��������Ϊ�û�
����ݱ�ʶ���ɼ�ӵ�ж�������Ƶ������ʵ��Ӧ�����Ƿdz��ձ�������
�����������ᵽ��ƾ֤������һ���ض�������ڣ���������κζ���ƾ֤
�п����κ��ض���ȫϵͳ��Ҫ����֤��Ϣ�������ǩ��ticket������Կ��
���Subject������ά����һ���ض���˽�к��е�ƾ֤����Щƾ֤����ͨ��
getPrivateCredentials������getPublicCredentials����������á���Щ����
ͨ����Ӧ�ó�����еİ�ȫ��ϵͳ�����á�
������֤��LoginContext
������Ӧ�ó�����У������ʹ��LoginContext��������֤Subject����LoginContext
����ͬʱ������JAAS�Ķ�̬�ɲ����ԣ�Dynamic Pluggability������Ϊ���㴴
��һ��LoginContext��ʵ��ʱ������Ҫָ��һ�����á�LoginContextͨ����һ
���ı��ļ��м���������Ϣ����Щ������Ϣ����LoginContext�����ڵ�¼ʱʹ
����һ��LoginModule����
���������г�����LoginContext�о���ʹ�õ����������
����login () ���е�¼�������÷����������������ƶ�������LoginModule��
�����ɹ������һ����������֤��Subject�������׳�LoginException
�쳣��
����getSubject () ���ؾ�����֤��Subject����
����logout () ע��Subject����ɾ����֮��ص�Principal�����ƾ֤
������֤��LoginModule
����LoginModule�ǵ����ض���֤���ƵĽӿڡ�J2EE 1.4�а������漸��LoginModule
��ʵ���ࣺ
����JndiLoginModule ������֤��JNDI�����õ�Ŀ¼����
����Krb5LoginModule ʹ��KerberosЭ�������֤
����NTLoginModul ʹ�õ�ǰ�û���NT�е��û���Ϣ������֤
����UnixLoginModule ʹ�õ�ǰ�û���Unix�е��û���Ϣ������֤
����ͬ������Щģ�����һ��Ļ��ж�Ӧ��Principal�ӿڵ�ʵ���࣬����NTDomainPrincipal
��UnixPrincipal��������com.sun.security.auth����
����LoginModule�ӿ��а������������
����initialize () ������һLoginModuleʵ��ʱ�ᱻ���캯�����
����login () ������֤
����commit () ��LgoninContext�����������LoginModule���صĽ���
�����ø÷������÷�����Principal�����ƾ֤����Subject����
����
����abort () ���κ�һ��LoginModule������֤ʧ��ʱ������ø÷�������ʱ
û���κ�Principal�����ƾ֤������Subject�����ϡ�
����logout () ɾ����Subject���������Principal�����ƾ֤��
������Ӧ�ó���Ĵ����У�����Աͨ������ֱ�ӵ��������г��ķ���������ͨ
��LigonContext��ӵ�����Щ������
������֤��CallbackHandler��Callback
����CallbackHandler��Callback�������ʹLoginModule�����ϵͳ���û���
���ռ���Ҫ����֤��Ϣ��ͬʱ������ʵ�ʵ��ռ���Ϣʱ����Ľ�����̡�
����
����JAAS��javax.sevurity.auth.callback���а����߸�Callback��ʵ����
������CallbackHandler��ʵ���ࣺChoiceCallback��ConfirmationCallback��
LogcaleCallback��NameCallback��PasswordCallback��TextInputCallback��
TextOutputCallback��DialogCallbackHandler��TextCallBackHandler��Callback
�ӿ�ֻ���ڿͻ��˻ᱻʹ�õ����ҽ��ں��������α�д���Լ���CallbackHandler
�ࡣ
--
Everything is an object,
and everything is an instance in Java,
so I'm living in Java
[m[1;36m�� ��Դ:��Ʈ��ˮ�Ƽ� Freecity.dhs.org��[FROM: reoal][m
Technical Details
Message-ID:
<49bN2d$9uO@Freecity.dhs.org>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!news-out.visi.com!petbe.visi.com!feed2.newsreader.com!newsreader.com!maily.cic.tsinghua.edu.cn!news.ccie.net.cn!FreecityShow Full Headers
Complete Article Headers
X-Google-Language: Chinese,GB X-Google-Thread: f6cb0,ef7253b2f9069f62,start X-Google-Attributes: gidf6cb0,public X-Google-ArrivalTime: 2003-12-11 01:58:19 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!news-out.visi.com!petbe.visi.com!feed2.newsreader.com!newsreader.com!maily.cic.tsinghua.edu.cn!news.ccie.net.cn!Freecity From: reoal.bbs@Freecity.dhs.org (Reoal Living In Java) Newsgroups: cn.bbs.comp.lang.java Subject: ��ת�ء�JAAS:����Java��ȫ����2 Date: 11 Dec 2003 09:58:05 GMT Organization: Ʈ��ˮ�Ƽ� Message-ID: <49bN2d$9uO@Freecity.dhs.org> Mime-Version: 1.0 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: 8bit X-Filename: Java/M.1071136647.A