jaastest.java
来自「经典教材:java核心技术卷1、卷2的所有源代码」· Java 代码 · 共 84 行
JAVA
84 行
import java.awt.*;import java.awt.event.*;import javax.security.auth.*;import javax.security.auth.login.*;import javax.swing.*;/** This program authenticates a user via a custom login and then executes the SysPropAction with the user's privileges.*/public class JAASTest{ public static void main(final String[] args) { System.setSecurityManager(new SecurityManager()); JFrame frame = new JAASFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); }}/** This frame has text fields for user name and password, a field for the name of the requested system property, and a field to show the property value.*/class JAASFrame extends JFrame{ public JAASFrame() { setTitle("JAASTest"); username = new JTextField(20); password = new JPasswordField(20); propertyName = new JTextField(20); propertyValue = new JTextField(20); propertyValue.setEditable(false); JPanel panel = new JPanel(); panel.setLayout(new GridLayout(0, 2)); panel.add(new JLabel("username:")); panel.add(username); panel.add(new JLabel("password:")); panel.add(password); panel.add(propertyName); panel.add(propertyValue); add(panel, BorderLayout.CENTER); JButton getValueButton = new JButton("Get Value"); getValueButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { getValue(); } }); JPanel buttonPanel = new JPanel(); buttonPanel.add(getValueButton); add(buttonPanel, BorderLayout.SOUTH); pack(); } public void getValue() { try { LoginContext context = new LoginContext("Login1", new SimpleCallbackHandler(username.getText(), password.getPassword())); context.login(); Subject subject = context.getSubject(); propertyValue.setText( "" + Subject.doAsPrivileged(subject, new SysPropAction(propertyName.getText()), null)); context.logout(); } catch (LoginException e ) { JOptionPane.showMessageDialog(this, e); } } private JTextField username; private JPasswordField password; private JTextField propertyName; private JTextField propertyValue;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?