web服务安全
在Axis2中,我们用Apache Rampart来提供安全支持。
下载最新版本,解压缩后,拷贝rampart-version.mar到AXIS2_HOME/module下,拷贝其中的Jar到lib目录
(如TOMCAT_HOME/axis2/WEB-INF/lib)。现在重启Axis2,登录到管理控制台,and engage the Rampart
module。几秒钟后,如果你看到在the engaged module下有Rampart模块,那么你已成功为你的web服务框架
添加了安全支持。
一、样例服务:
首先,创建服务类:
public class SecureService {
public String echo(String in) {
return in;
}
}
二、编写密码回调
我们需要一个password callback object来认证用户。用户名和密码信息可以随我们意放在任何地方,
如数据库,LDAP,等等。
import org.apache.ws.security.WSPasswordCallback;
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.callback.UnsupportedCallbackException;
import java.io.IOException;
public class PWCBHandler implements CallbackHandler {
public void handle(Callback[] callbacks) throws IOException,
UnsupportedCallbackException {
for (int i = 0; i < callbacks.length; i++) {
WSPasswordCallback pwcb = (WSPasswordCallback)callbacks[i];
if(pwcb.getIdentifer().equals("axis2uers") &&
pwcb.getPassword().equals("password")) {
//If authentication successful, simply return
return;
} else {
throw new UnsupportedCallbackException(callbacks[i], "check failed");
}
}
}
}
上一篇: 用Genymotion模拟器测试app
下一篇: AliCTF 2016 Writup