/** * Copy Constructor */ public ResolverFlags(ResolverFlags other) { https = other.https; saml = other.saml; refs = other.refs; noDefaultT = other.noDefaultT; noDefaultP = other.noDefaultP; noDefaultM = other.noDefaultM; uric = other.uric; cid = other.cid; }
/** * This is the recommended API to use for performing authority resolution an an XRI * @param qxri * @param flags - ResolverFlag * @param state - ResolverState * @return * @throws PartialResolutionException */ public XRDS resolveAuthToXRDS(XRI qxri, ResolverFlags flags, ResolverState state) throws PartialResolutionException {
//throws XRIResolutionException /* ************************************************************************ * getDataFromURI() ************************************************************************ */ /** * */ protected InputStream getDataFromURI(URI uri, String query, ResolverFlags flags, ResolverState state) { // if we got the nonexistent "command" return a not found if (uri.getPath().indexOf("!nonexistent") >= 0) { XRD xrd = new XRD(); xrd.setQuery("!nonexistent"); xrd.setStatus(new Status(Status.AUTH_RES_NOT_FOUND)); XRDS xrds = new XRDS(); xrds.add(xrd); return new ByteArrayInputStream(xrds.toString().getBytes()); } XRDS oDescs = new XRDS(); // just the same response always XRD oFoo = new XRD(); oFoo.setQuery("!foo"); oFoo.setStatus(new Status(Status.SUCCESS)); oDescs.add(oFoo); XRD oBar = new XRD(); oBar.setQuery("!bar"); oBar.setStatus(new Status(Status.SUCCESS)); oDescs.add(oBar); if (uri.getPath().indexOf("!baz") > 0) { XRD baz = new XRD(); baz.setQuery("!baz"); baz.setStatus(new Status(Status.AUTH_RES_NOT_FOUND, "Not found")); oDescs.add(baz); } return new ByteArrayInputStream(oDescs.toString().getBytes()); }
// throws XRIResolutionException protected InputStream getDataFromURI(URI oURI, string query, ResolverFlags flags, ResolverState state) { // the path better be empty if ((oURI.getPath() != null) && (oURI.getPath().Length > 0)) return null; XRD oDesc = new XRD(); XRI oExternal = new XRI("xri://@foo"); oDesc.addRef(new Ref(oExternal.toString())); XRDS oDescs = new XRDS(); oDescs.add(oDesc); state.pushResolved(oURI.toString(), flags.toString(), oDesc.toString(), oURI); return new ByteArrayInputStream(oDescs.toString().getBytes()); }
public void testCID() { string qxri; try { Resolver resolver = setupResolver(); qxri = "@xrid*test*live.unit.tests*0003-badcid*kid"; XRI xri = XRI.fromIRINormalForm(qxri); ResolverFlags flags = new ResolverFlags(); XRDS xrds = resolver.resolveAuthToXRDS(xri, flags, new ResolverState()); // Logger.Info(xrds); assertTrue("Expected 5 XRDs", xrds.getNumChildren() == 5); assertTrue("subseg[3] should be *0003-badcid", xrds.getDescriptorAt(3).getQuery().Equals("*0003-badcid")); Status s3 = xrds.getDescriptorAt(3).getStatus(); assertTrue("subseg[3].status.cid should be 'failed'", s3.getCID().Equals("failed")); Status s4 = xrds.getDescriptorAt(4).getStatus(); assertTrue("subseg[4].status.cid should be 'failed'", s4.getCID().Equals("failed")); qxri = "@xrid*test*live.unit.tests*0001-simple"; xri = XRI.fromIRINormalForm(qxri); xrds = resolver.resolveAuthToXRDS(xri, flags, new ResolverState()); assertTrue("Expected 4 XRDs", xrds.getNumChildren() == 4); XRD xrd3 = xrds.getDescriptorAt(3); assertTrue("subseg[3] should be *0001-simple", xrd3.getQuery().Equals("*0001-simple")); assertTrue("subseg[3] should be CID verified", xrd3.getStatus().getCID().Equals(Status.CID_VERIFIED)); assertTrue("subseg[3] should be CEID verified", xrd3.getStatus().getCEID().Equals(Status.CID_VERIFIED)); } catch (Exception e) { fail("Not expecting an exception here: " + e); e.printStackTrace(); } }
public void testResolve() { string qxri; try { Resolver resolver = setupResolver(); qxri = "@xrid*test*freeid*null-provider"; qxri = "=les.chasen"; qxri = "=kermit*\u65e5\u672c\u7248"; XRI xri = XRI.fromIRINormalForm(qxri); ResolverFlags flags = new ResolverFlags(); flags.setUric(true); flags.setHttps(false); resolver.resolveSEPToXRD(xri, null, null, flags, new ResolverState()); ArrayList uris = resolver.resolveSEPToURIList(qxri, new TrustType(), null, "text/xml", true); } catch (Exception e) { e.printStackTrace(); fail("Not expecting an exception here: " + e); } }
public void testLiveRef() { string qxri; try { Resolver resolver = setupResolver(); qxri = "@xrid*test*live.unit.tests*0002-ref"; XRI xri = XRI.fromIRINormalForm(qxri); ResolverFlags flags = new ResolverFlags(); XRDS xrds = resolver.resolveAuthToXRDS(xri, flags, new ResolverState()); assertTrue("There should be 5 child elements", xrds.getNumChildren() == 5); assertTrue("The last child should be an XRDS element because it followed a Ref", xrds.isXRDSAt(4)); } catch (PartialResolutionException e) { fail("Not expecting PRE. PartialXRDS=" + e.getPartialXRDS()); } catch (Exception e) { fail("Not expecting an exception here: " + e); } }
public void testLiveRedirect() { string qxri = "@xrid*test*live.unit.tests*0004-redirect/(+blog)"; try { Resolver resolver = setupResolver(); XRI xri = XRI.fromIRINormalForm(qxri); ResolverFlags flags = new ResolverFlags(); XRDS xrds = resolver.resolveSEPToXRDS(xri, null, null, flags, new ResolverState()); Logger.Info(xrds); assertTrue("There should be 8 child elements", xrds.getNumChildren() == 8); assertTrue("The first child should be an XRD element", xrds.isXRDAt(0)); assertTrue("The second child should be an XRD element", xrds.isXRDAt(1)); assertTrue("The third child should be an XRD element", xrds.isXRDAt(2)); assertTrue("The fourth child should be an XRD element", xrds.isXRDAt(3)); assertTrue("The fifth child should be an XRDS element because it followed a Redirect", xrds.isXRDSAt(4)); XRDS redirXRDS = xrds.getXRDSAt(4); assertTrue("Wrong redirect followed in the fifth child", redirXRDS.getRedirect().Equals("http://auth.xrid.net/!330/")); assertTrue("The fifth child should have 2 children", redirXRDS.getNumChildren() == 2); assertTrue("The fifth child's first child should be an XRD", redirXRDS.isXRDAt(0)); assertTrue("The fifth child's second child should be an XRDS", redirXRDS.isXRDSAt(1)); redirXRDS = redirXRDS.getXRDSAt(1); assertTrue("Wrong redirect followed in the fifth child's second child", redirXRDS.getRedirect().Equals("http://does.not.exist/")); assertFalse("Fifth child should have failed", redirXRDS.getFinalXRD().getStatusCode().Equals(Status.SUCCESS)); assertTrue("The sixth child should be an XRDS element because it followed a Redirect", xrds.isXRDSAt(5)); redirXRDS = xrds.getXRDSAt(5); assertTrue("Wrong redirect followed in the sixth child", redirXRDS.getRedirect().Equals("http://auth.xrid.net/!333/")); assertTrue("The seventh child should be an XRDS element because it followed a Redirect", xrds.isXRDSAt(6)); redirXRDS = xrds.getXRDSAt(6); assertTrue("Wrong redirect followed on the seventh child", redirXRDS.getRedirect().Equals("http://auth.xrid.net/!331/")); assertTrue("Seventh child should have succeeded", redirXRDS.getFinalXRD().getStatusCode().Equals(Status.SUCCESS)); assertTrue("The eighth child should be an XRDS element because it followed a Service-level Redirect", xrds.isXRDSAt(7)); redirXRDS = xrds.getXRDSAt(7); assertTrue("Wrong redirect followed on the eighth child", redirXRDS.getRedirect().Equals("http://auth.xrid.net/!332/")); assertTrue("Eighth child should have succeeded", redirXRDS.getFinalXRD().getStatusCode().Equals(Status.SUCCESS)); assertTrue("Should be one selected Service on eighth child", redirXRDS.getFinalXRD().getSelectedServices().getList().Count == 1); Service srv = (Service)redirXRDS.getFinalXRD().getSelectedServices().getList().get(0); assertTrue("In correct URI in selected service on eighth child", srv.getURIAt(0).getUriString().Equals("http://my.blog.com")); } catch (Exception e) { e.printStackTrace(); fail("Not expecting exception: " + e); } }