`
阳光小菜鸟
  • 浏览: 95746 次
  • 性别: Icon_minigender_2
  • 来自: 郑州
社区版块
存档分类
最新评论

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

}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics