📄 authenticationhandler.java
字号:
package com.j2ee14.ch20;import java.util.Iterator;import javax.xml.namespace.QName;import javax.xml.rpc.handler.soap.SOAPMessageContext;import javax.xml.rpc.JAXRPCException;import javax.xml.rpc.handler.*;import javax.xml.soap.*;/** *认证的Handler,从GenericHandler继承。 */public class AuthenticationHandler extends GenericHandler { private HandlerInfo handlerInfo; private String userName=null; public void init(HandlerInfo info) { handlerInfo = info; //获得初始参数 userName = (String) info.getHandlerConfig().get("userName"); System.out.println("ServerHandler1: userName = " + userName); } /* * 这是GenericHandler中的抽象方法,必须实现。. */ public QName[] getHeaders() { return handlerInfo.getHeaders(); } /** *处理请求 */ public boolean handleRequest(MessageContext context) { try { // get the soap header SOAPMessageContext msgContext = (SOAPMessageContext) context; String uName=(String)msgContext.getProperty("userName"); java.util.StringTokenizer t=new java.util.StringTokenizer(userName,","); boolean auth=false; while(t.hasMoreTokens()) { //如果uName在配置的用户列表之中,那么就有权限。 if(t.nextElement().equals(uName)) { auth=true; break; } } if(auth==false) throw new JAXRPCException("没有权限!"); return true;//返回true,继续处理soap消息 } catch (Exception e) { throw new JAXRPCException(e); } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -