xfire+wss4j实现WS-Security (二)

服务端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;
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值