authcallbackhandler.java

来自「一个用struts tiles的在线影院web系统」· Java 代码 · 共 57 行

JAVA
57
字号
package com.blue.web.security.jaas;

import java.io.IOException;

import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.callback.NameCallback;
import javax.security.auth.callback.PasswordCallback;
import javax.security.auth.callback.TextOutputCallback;
import javax.security.auth.callback.UnsupportedCallbackException;

public class AuthCallbackHandler implements CallbackHandler {
    private String name = null;
	private String password = null;

	public AuthCallbackHandler(String name, String password){
		super();
		this.name = name;
		this.password = password;
	}

	public void handle(Callback[] callbacks) throws IOException,
			UnsupportedCallbackException {
		System.out.println("AuthCallbackHandler.handle()");
		for (int i = 0; i < callbacks.length; i++) {
			if (callbacks[i] instanceof TextOutputCallback) {
				TextOutputCallback textOutputCallback = (TextOutputCallback) callbacks[i];
				switch (textOutputCallback.getMessageType()) {
				case TextOutputCallback.INFORMATION :
					System.out.println(textOutputCallback.getMessage());
					break;
				case TextOutputCallback.ERROR:
					System.out.println("ERROR: " + textOutputCallback.getMessage());
					break;
				case TextOutputCallback.WARNING:
					System.out.println("WARNING: " + textOutputCallback.getMessage());
					break;
				default:
					throw new IOException("Invalid message type: " + textOutputCallback.getMessageType());
				}
			} else if (callbacks[i] instanceof NameCallback) {
				// prompt the user for a userid
				NameCallback nc = (NameCallback) callbacks[i];
				nc.setName(this.name);
				System.out.println("nc.setName("+this.name+");");
			} else if (callbacks[i] instanceof PasswordCallback) {
				// prompt the user for the password
				PasswordCallback pc = (PasswordCallback) callbacks[i];
				pc.setPassword(this.password.toCharArray());
				System.out.println("pc.setPassword("+this.password+");");
			} else {
				throw new UnsupportedCallbackException(callbacks[i], "Invalid Callback");
			}
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?