📄 httpauthtest.java
字号:
package org.codehaus.xfire.transport.http;import java.lang.reflect.Proxy;import java.net.MalformedURLException;import org.codehaus.xfire.XFire;import org.codehaus.xfire.XFireFactory;import org.codehaus.xfire.client.Client;import org.codehaus.xfire.client.XFireProxy;import org.codehaus.xfire.client.XFireProxyFactory;import org.codehaus.xfire.fault.XFireFault;import org.codehaus.xfire.service.Echo;import org.codehaus.xfire.service.EchoImpl;import org.codehaus.xfire.service.Service;import org.codehaus.xfire.service.binding.MessageBindingProvider;import org.codehaus.xfire.service.invoker.ObjectInvoker;import org.codehaus.xfire.test.AbstractXFireTest;import org.codehaus.xfire.transport.Channel;import org.jdom.Element;import org.mortbay.jetty.Server;import org.mortbay.jetty.security.Constraint;import org.mortbay.jetty.security.ConstraintMapping;import org.mortbay.jetty.security.HashUserRealm;import org.mortbay.jetty.security.SecurityHandler;import org.mortbay.jetty.security.UserRealm;import org.mortbay.jetty.servlet.Context;import org.mortbay.jetty.servlet.ServletHandler;import org.mortbay.jetty.servlet.ServletHolder;public class HttpAuthTest extends AbstractXFireTest{ private Service service; private Server httpServer; public void setUp() throws Exception { super.setUp(); httpServer = new Server(8191); Context context = new Context(httpServer,"/",Context.SESSIONS); ServletHolder servlet = new ServletHolder(new XFireServlet()); context.addServlet(servlet, "/*"); SecurityHandler sh = new SecurityHandler(); context.addHandler(sh); HashUserRealm userRealm = new HashUserRealm(); userRealm.put("user", "pass"); userRealm.addUserToRole("user", "role"); assertNotNull(userRealm.authenticate("user", "pass", null)); sh.setUserRealm(userRealm); Constraint constraint = new Constraint(); constraint.setName(Constraint.__BASIC_AUTH);; constraint.setRoles(new String[]{"role"}); constraint.setAuthenticate(true); ConstraintMapping cm = new ConstraintMapping(); cm.setConstraint(constraint); cm.setPathSpec("/*"); context.setAttribute(XFireServlet.XFIRE_INSTANCE, getXFire()); httpServer.start(); service = getServiceFactory().create(Echo.class); service.setProperty(ObjectInvoker.SERVICE_IMPL_CLASS, EchoImpl.class); service.setBindingProvider(new MessageBindingProvider()); getServiceRegistry().register(service); } protected XFire getXFire() { XFireFactory factory = XFireFactory.newInstance(); return factory.getXFire(); } protected void tearDown() throws Exception { httpServer.stop(); super.tearDown(); } public void testProxy() throws MalformedURLException, XFireFault { Echo echo = (Echo) new XFireProxyFactory().create(service, "http://localhost:8191/Echo"); Client client = ((XFireProxy) Proxy.getInvocationHandler(echo)).getClient(); client.setProperty(Channel.USERNAME, "user"); client.setProperty(Channel.PASSWORD, "pass"); Element root = new Element("root", "a", "urn:a"); root.addContent("hello"); Element e = echo.echo(root); assertEquals(root.getName(), e.getName()); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -