🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.bbs.comp.lang.java
Article #21143

��ת�ء�JAAS:����Java��ȫ����2

#21143
From: Reoal Living In Java
Date: Thu, 11 Dec 2003 09:58
168 lines
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

�� ��Դ:��Ʈ��ˮ�Ƽ� Freecity.dhs.org��[FROM: reoal]
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!Freecity

Show 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