欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

web服务安全

程序员文章站 2022-06-09 12:33:41
...

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