⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 authenticationhandler.java

📁 webservices axis文档 例子
💻 JAVA
字号:
package anni.handler;
import org.apache.axis.AxisFault;
import org.apache.axis.MessageContext;
import org.apache.axis.handlers.BasicHandler;
import org.apache.axis.i18n.Messages;
import org.apache.axis.security.AuthenticatedUser;
import org.apache.axis.security.SecurityProvider;
import org.apache.axis.security.simple.SimpleSecurityProvider;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

//此handler的目的是对用户认证,只有认证的用户才能访问目标服务。
public class AuthenticationHandler extends BasicHandler {
    Log log = LogFactory.getLog(AuthenticationHandler.class);
    String securityProvider = "securityProvider";
    String unauthenticated = "unauthenticated";
    String authenticatedUser = "authenticatedUser";
    String cantAuth = "cantAuth";

    public void invoke(MessageContext msgContext) throws AxisFault {
        log.info("AuthenticationHandler : invoke : start");
        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,表示没有通过认证,
			log.info(userId + ", " + password);
            //抛出Server.Unauthenticated异常。
            AuthenticatedUser authUser = provider.authenticate(msgContext);

            if(authUser == null)
                throw new AxisFault(unauthenticated, 
                    "error", null, null);
            //用户通过认证,把用户的设置成认证了的用户。
            msgContext.setProperty(authenticatedUser, authUser);
        }
        log.info("AuthenticationHandler : invoke : end");
    }
}

⌨️ 快捷键说明

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