KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sf > jguard > example > swing > SwingCallbackHandler


1 /*
2  jGuard is a security framework based on top of jaas (java authentication and authorization security).
3  it is written for web applications, to resolve simply, access control problems.
4  version $Name$
5  http://sourceforge.net/projects/jguard/
6
7  Copyright (C) 2004 Charles GAY
8
9  This library is free software; you can redistribute it and/or
10  modify it under the terms of the GNU Lesser General Public
11  License as published by the Free Software Foundation; either
12  version 2.1 of the License, or (at your option) any later version.
13
14  This library is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  Lesser General Public License for more details.
18
19  You should have received a copy of the GNU Lesser General Public
20  License along with this library; if not, write to the Free Software
21  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22
23
24  jGuard project home page:
25  http://sourceforge.net/projects/jguard/
26
27  */

28 package net.sf.jguard.example.swing;
29
30 import java.awt.Dialog JavaDoc;
31 import java.awt.Frame JavaDoc;
32 import java.awt.GridLayout JavaDoc;
33 import java.awt.event.ActionEvent JavaDoc;
34 import java.awt.event.ActionListener JavaDoc;
35 import java.io.IOException JavaDoc;
36
37 import javax.security.auth.callback.Callback JavaDoc;
38 import javax.security.auth.callback.CallbackHandler JavaDoc;
39 import javax.security.auth.callback.NameCallback JavaDoc;
40 import javax.security.auth.callback.PasswordCallback JavaDoc;
41 import javax.security.auth.callback.UnsupportedCallbackException JavaDoc;
42 import javax.swing.JButton JavaDoc;
43 import javax.swing.JDialog JavaDoc;
44 import javax.swing.JLabel JavaDoc;
45 import javax.swing.JPasswordField JavaDoc;
46 import javax.swing.JTextField JavaDoc;
47
48 /**
49  *
50  * @author <a HREF="mailto:vberetti@users.sourceforge.net">Vincent Beretti</a>
51  */

52 public class SwingCallbackHandler implements CallbackHandler JavaDoc{
53
54     private JDialog JavaDoc dialog;
55     private JTextField JavaDoc nameField;
56     private JPasswordField JavaDoc passwordField;
57
58     private static final int NB_ROWS = 3;
59
60     public SwingCallbackHandler(Frame JavaDoc parent) {
61         dialog = new JDialog JavaDoc(parent, true);
62         dialog.getContentPane().setLayout(new GridLayout JavaDoc(NB_ROWS,2));
63         dialog.setLocation(parent.getLocation());
64     }
65
66     public void handle(Callback JavaDoc[] callbacks) throws IOException JavaDoc, UnsupportedCallbackException JavaDoc {
67         for(int i=0; i < callbacks.length && i < NB_ROWS ; i++){
68             if(callbacks[i] instanceof NameCallback JavaDoc){
69                 NameCallback JavaDoc nameCallback = (NameCallback JavaDoc) callbacks[i];
70                 dialog.getContentPane().add(new JLabel JavaDoc(nameCallback.getPrompt()));
71                 nameField = new JTextField JavaDoc();
72                 dialog.getContentPane().add(nameField);
73             }else if(callbacks[i] instanceof PasswordCallback JavaDoc){
74                 PasswordCallback JavaDoc passwordCallback = (PasswordCallback JavaDoc) callbacks[i];
75                 dialog.getContentPane().add(new JLabel JavaDoc(passwordCallback.getPrompt()));
76                 passwordField = new JPasswordField JavaDoc();
77                 dialog.getContentPane().add(passwordField);
78             }
79         }
80         JButton JavaDoc ok = new JButton JavaDoc("ok");
81         ConfirmListener listener = new ConfirmListener(dialog);
82         ok.addActionListener(listener);
83         dialog.getContentPane().add(ok);
84         dialog.setSize(200, 100);
85         dialog.pack();
86         dialog.setVisible(true);
87
88         for(int i=0; i < callbacks.length && i < NB_ROWS ; i++){
89             if(callbacks[i] instanceof NameCallback JavaDoc){
90                 NameCallback JavaDoc nameCallback = (NameCallback JavaDoc) callbacks[i];
91                 nameCallback.setName(nameField.getText());
92             }else if(callbacks[i] instanceof PasswordCallback JavaDoc){
93                 PasswordCallback JavaDoc passwordCallback = (PasswordCallback JavaDoc) callbacks[i];
94                 passwordCallback.setPassword(passwordField.getPassword());
95             }
96         }
97     }
98
99 }
100
101 class ConfirmListener implements ActionListener JavaDoc{
102
103     private Dialog JavaDoc dialog;
104
105     public ConfirmListener(Dialog JavaDoc dialog){
106         this.dialog = dialog;
107     }
108
109     public void actionPerformed(ActionEvent JavaDoc e) {
110         dialog.dispose();
111     }
112
113 }
114
Popular Tags