📄 authcallbackhandler.java
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -