Article View: cn.bbs.comp.lang.java
Article #21146��ת�ء�JAAS:����Java��ȫ����4
From: Reoal Living In Java
Date: Thu, 11 Dec 2003 10:00
Date: Thu, 11 Dec 2003 10:00
74 lines
5805 bytes
5805 bytes
ʹ��JSP��ϵ��ݿ���е�¼��֤
������������ϣ��ͨ�������е��õij���һֱ��WebӦ�ó����С�����WebӦ
�ó�����һ���Ӧ�ó���Ľ�����ʽ�����ͬ�����ǽ�����ʹ��JAAS�ṩ��
��Callback��CallbackHandler�ࡣ��Ϊ���Dz�����Web�����д�һ������
�������û�������Ϣ��Ҳ������뵽����Ҳ����ʹ�û���HTTP����֤��������
�ǿ��Դ�������������û������봰���л���û����롣����������Ҳ��һ
Щ���⣬��Ҫ������˫���HTTP���ӣ���login������������ʵ��˫�����ӣ�
����������ǵ����������ǻ�ʹ�����ñ?���е�¼���ӱ?�л�ȡ�û�����
����Ϣ��Ȼ��ͨ��RdbmsLoginModule����֤��
������������û����Ӧ�ò�ͬLoginModuleֱ�Ӵ�������ͨ��LgoinContext
���������еķ����ģ�������ν�����û�����������LoginModule��������
�����ǿ���ʹ������ķ������ƹ�������⣬�������ǿ����ڴ���LoginContext
����ǰ�ȳ�ʼ��һ��Subject������Subject�����ƾ֤�б����û��������
��Ȼ�����ǿ��Խ���Subject���ݸ�LoginContext�Ĺ��캯�����ַ�����
Ȼ�Ӽ�������˵û��ʲô���⣬��������Ӧ�ó���������˺ܶ��밲ȫ������
�صĴ��롣����ͨ��������֤����Subject����ƾ֤������֮ǰ��
ǰ�������ᵽ����ʵ��һ��CallbackHandler�࣬Ȼ�����ʵ��ݸ�LoginContext
�������������ǿ��Բ������Ƶķ����������û�������롣����ʵ����һ��
�µ���PassiveCallbackHandler����������JSP��ʹ�ø���Ĵ��룺
String user = request.getParameter("user");
String pass = request.getParameter("pass");
PassiveCallbackHandler cbh = new PassiveCallbackHandler(user, pass);
LoginContext lc = new LoginContext("Example", cbh);
����PassiveCallbackHandler�й��캯��IJ�������û�������롣�����
������Callbick�������趨��ȷ��ֵ��������PassiveCallbackHandler���handle
���������Ĵ��룺
public void handle(Callback[] callbacks)
throws java.io.IOException, UnsupportedCallbackException {
for (int i = 0; i �� callbacks.length; i++) {
if (callbacks[i] instanceof NameCallback) {
NameCallback nameCb = (NameCallback)callbacks[i];
nameCb.setName(user);
} else if(callbacks[i] instanceof PasswordCallback) {
PasswordCallback passCb = (PasswordCallback)callbacks[i];
passCb.setPassword(pass.toCharArray());
} else {
throw(new UnsupportedCallbackException(callbacks[i],
"Callback class not supported"));
}
}
}
}
����������Ĵ����п��Է���ʵ��������ֻ�Ǵ�ConsoleCallbackHandler��ȥ
������Щ��ʾ�û�����Ĵ��롣
�������������JSP���ӵ�ʱ��������Ҫ�趨ϵͳ���ԣ�����LgoinContext��
���֪����β������Ϊ"Example"�����á�����ʹ�õ���Resin����������resin
.conf�У�����������һ����caucho.com���ڵ㣺
��system-property
java.security.auth.login.config="/resin/conf/jaas.config"/��
������
����JAASͨ���ṩ��̬�ġ�����չ��ģ���������û���֤�Ϳ���Ȩ�ޣ��Ӷ�ʹ
Ӧ�ó����и�ӽ�׳�İ�ȫ���ơ�ͬʱ���ܹ������ܹ������ɵش����Լ���
��¼���ơ�JAAS����ͬʱ���ڿͻ��˺ͷ�������Ӧ�ó����Ϲ�������Ȼ�ڷ���
���˵�JAAS��Ŀǰ�����Ǻ��ȶ����������ż����ķ�չ�����Ż�ܺõؽ����
�����⡣
--
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:
<49bN6M$9aL@Freecity.dhs.org>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!fu-berlin.de!newsfeed.news2me.com!newshosting.com!news-xfer2.atl.newshosting.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,7753b7f8bab41841,start X-Google-Attributes: gidf6cb0,public X-Google-ArrivalTime: 2003-12-11 02:03:16 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!fu-berlin.de!newsfeed.news2me.com!newshosting.com!news-xfer2.atl.newshosting.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��ȫ����4 Date: 11 Dec 2003 10:00:38 GMT Organization: Ʈ��ˮ�Ƽ� Message-ID: <49bN6M$9aL@Freecity.dhs.org> Mime-Version: 1.0 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: 8bit X-Filename: Java/M.1071136822.A Lines: 74