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");
      }
    }
  }
}

猜你喜欢

转载自zsjg13.iteye.com/blog/2412014