服务端webservice.xml
服务端代码:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>Test</name>
<serviceClass>servertest.DxTest</serviceClass>
<implementationClass>servertest.DxTe</implementationClass>
<inHandlers>
<handler
handlerClass="org.codehaus.xfire.util.dom.DOMInHandler" />
<bean
class="org.codehaus.xfire.security.wss4j.WSS4JInHandler" xmlns="">
<property name="properties">
<props>
<prop key="action">Signature</prop>
<prop key="signaturePropFile">insecurity.properties</prop>
<prop key="passwordCallbackClass">server.servertest.PasswordHandler</prop>
</props>
</property>
</bean>
</inHandlers>
</service>
</beans>
服务端代码:
package servertest;
import java.util.ArrayList;
import form.User;
public interface DxTest {
public ArrayList<User> getDx();
//public String getD(String a);
}
package servertest;
import java.util.ArrayList;
import form.User;
public class DxTe implements DxTest{
public ArrayList<User> getDx(){
ArrayList<User> list =new ArrayList<User>();
User u1=new User();
u1.setId("11");
u1.setName("aa");
User u2=new User();
u2.setId("12");
u2.setName("bb");
User u3=new User();
u3.setId("13");
u3.setName("cc");
list.add(u1);
list.add(u2);
list.add(u3);
return list;
}
/*public String getD(String a){
return a+"----";
}*/
}
package servertest;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.callback.UnsupportedCallbackException;
import org.apache.ws.security.WSPasswordCallback;
public class PasswordHandler implements CallbackHandler {
private Map passwords = new HashMap();
public PasswordHandler() {
passwords.put("ws_security","keypassword");
}
public void handle(Callback[] callbacks) throws IOException,
UnsupportedCallbackException {
System.out.println("Handling Password!");
WSPasswordCallback pc = (WSPasswordCallback) callbacks[0];
String id = pc.getIdentifer();
System.out.println("id:"+id+" ,password:"+(String) passwords.get(id));
pc.setPassword((String) passwords.get(id));
}
}
package form;
public class User {
String id="";
String name="";
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}