authenticationhandler.java

来自「OA典型例子」· Java 代码 · 共 35 行

JAVA
35
字号
package com.sure.soapserver;
import  java.util.*;
import  org.apache.axis.handlers.BasicHandler;
import  org.apache.axis.security.*;
import  org.apache.axis.security.simple.*;
import  org.apache.axis.utils.Messages;
import  org.apache.axis.*;

//此handler的目的是对用户认证,只有认证的用户才能访问目标服务。
public class AuthenticationHandler extends BasicHandler
{

 /**
  * invoke,每一个handler都必须实现的方法。
  */
  public void invoke(MessageContext msgContext)throws AxisFault{
    SecurityProvider provider = (SecurityProvider) msgContext.getProperty("securityProvider");
    if (provider == null) {
      provider = new SimpleSecurityProvider();
      msgContext.setProperty("securityProvider", provider);
    }
    if (provider != null) {
      String userId = msgContext.getUsername();
      String password = msgContext.getPassword();
      //对用户进行认证,如果authUser==null,表示没有通过认证,抛出Server.Unauthenticated异常。
      AuthenticatedUser authUser = provider.authenticate(msgContext);
      if (authUser == null) {
        throw new  AxisFault("Server.Unauthenticated",Messages.getMessage("cantAuth01", userId), null,null);
      }
      //用户通过认证,把用户的设置成认证了的用户。
      msgContext.setProperty("authenticatedUser", authUser);
    }
  }
}

⌨️ 快捷键说明

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