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