⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testserialization.java

📁 oasis发布的web services security规范中的ws-trust规范的java实现
💻 JAVA
字号:
package edu.virginia.cs.wst.serialization;import org.apache.axis.Constants;import org.apache.axis.MessageContext;import org.apache.axis.encoding.DeserializationContext;import org.apache.axis.encoding.DeserializationContextImpl;import org.apache.axis.encoding.SerializationContext;import org.apache.axis.encoding.SerializationContextImpl;import org.apache.axis.encoding.TypeMapping;import org.apache.axis.encoding.TypeMappingRegistry;import org.apache.axis.message.RPCElement;import org.apache.axis.message.RPCParam;import org.apache.axis.message.SOAPEnvelope;import org.apache.axis.server.AxisServer;import org.apache.ws.security.message.token.UsernameToken;import org.w3c.dom.Document;import org.xml.sax.InputSource;import edu.virginia.cs.wst.RequestSecurityTokenResponse;import edu.virginia.cs.wst.SecurityTokenOrReference;import edu.virginia.cs.wst.TokenTypes;import edu.virginia.cs.wst.TrustConstants;import java.io.FileReader;import java.io.Reader;import java.io.StringReader;import java.io.StringWriter;import java.io.Writer;import java.net.URI;public class TestSerialization {	public static void main(String[] args) throws Exception {		MessageContext msgContext = new MessageContext(new AxisServer());		SOAPEnvelope msg = new SOAPEnvelope();		RPCParam arg1 = new RPCParam("urn:myNamespace", "testParam", "this is a string");		//QName dataQName = new QName("typeNS", "Data");		Document doc = msg.getAsDocument();				UsernameToken userToken = new UsernameToken(doc);		userToken.setName("bob");		userToken.setPassword("bobspass");						RequestSecurityTokenResponse tokenResponse = new RequestSecurityTokenResponse(doc, new SecurityTokenOrReference(userToken));		tokenResponse.setContext(new URI("http://context.context"));		tokenResponse.setTokenType(TokenTypes.USERNAME);				/*		Data data = new Data();		Data data2 = new Data();		data.stringMember = "String member";		data.floatMember = new Float("1.23");		data.dataMember = data2;        		data2.stringMember = "another str member";		data2.floatMember = new Float("4.56");		data2.dataMember = null;  // "data;" for loop-test of multi-refs        */        RPCParam arg2 = new RPCParam("", "struct", tokenResponse);		RPCElement body = new RPCElement("urn:myNamespace", "method1", new Object[]{ arg1, arg2 });		msg.addBodyElement(body);        		try {			Reader reader = null;            			if (args.length == 0) {				Writer stringWriter = new StringWriter();				SerializationContext context = new SerializationContextImpl(stringWriter, msgContext);                				TypeMappingRegistry reg = context.getTypeMappingRegistry();				TypeMapping tm = (TypeMapping) reg.getTypeMapping(Constants.URI_SOAP11_ENC);				if (tm == null) {					tm = (TypeMapping) reg.createTypeMapping();					reg.register(Constants.URI_DEFAULT_SOAP_ENC, tm);				}				tm.register(RequestSecurityTokenResponse.class, TrustConstants.RESPONSE_NAME, new RSTResponseSerializerFactory(), new RSTResponseDeserializerFactory());				msg.output(context);                				String msgString = stringWriter.toString();				System.out.println("Serialized msg:");				System.out.println(msgString);                				System.out.println("-------");				System.out.println("Testing deserialization...");                				reader = new StringReader(msgString);			} 			else {				reader = new FileReader(args[0]);			}            			DeserializationContext dser = new DeserializationContextImpl(new InputSource(reader), msgContext, org.apache.axis.Message.REQUEST);			dser.parse();			SOAPEnvelope env = dser.getEnvelope();			//System.out.println("********\n" + DOM2Writer.nodeToString(env, true) + "\n********");            			RPCElement rpcElem = (RPCElement)env.getFirstBody();			RPCParam struct = rpcElem.getParam("struct");			if (struct == null)				throw new Exception("No <struct> param");            			if (!(struct.getValue() instanceof RequestSecurityTokenResponse)) {				System.out.println("Not a RST object! ");				System.out.println(struct.getValue());				System.exit(1);			}            			RequestSecurityTokenResponse val = (RequestSecurityTokenResponse) struct.getValue();			if (val == null)				throw new Exception("No value for struct param");                        			System.out.println(val.toString());		} 		catch (Exception e) {			e.printStackTrace();		}	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -