@Override public LiteralStatement map(LiteralNode literal) { return literal.getStatement(); } }
LiteralNode digestValidLiteral = digestValidXdiAttribute.setLiteralBoolean(Boolean.valueOf(validated)); if (log.isDebugEnabled()) log.debug("Valid: " + digestValidLiteral.getStatement());
LiteralNode signatureValidLiteral = signatureValidXdiAttribute.setLiteralBoolean(Boolean.valueOf(validated)); if (log.isDebugEnabled()) log.debug("Valid for " + senderXDIAddress + ": " + signatureValidLiteral.getStatement());
@Override public InterceptorResult before(Message message, ExecutionContext executionContext, ExecutionResult executionResult) throws Xdi2MessagingException { // look for secret token on the message String secretToken = message.getSecretToken(); if (secretToken == null) return InterceptorResult.DEFAULT; // validate secret token XDIAddress senderXDIAddress = message.getSenderXDIAddress(); SecretTokenValidator secretTokenAuthenticator = this.getSecretTokenValidator(); if (log.isDebugEnabled()) log.debug("Validating for " + senderXDIAddress + " via " + secretTokenAuthenticator.getClass().getSimpleName()); boolean validated = true; validated &= secretTokenAuthenticator.authenticate(secretToken, senderXDIAddress); // secret token is valid? XdiAttribute secretTokenValidXdiAttribute = XdiAttributeSingleton.fromContextNode(message.getContextNode().setDeepContextNode(XDISecurityConstants.XDI_ADD_SECRET_TOKEN_VALID)); LiteralNode secretTokenValidLiteral = secretTokenValidXdiAttribute.setLiteralBoolean(Boolean.valueOf(validated)); if (log.isDebugEnabled()) log.debug("Valid for " + senderXDIAddress + ": " + secretTokenValidLiteral.getStatement()); if (! validated) throw new Xdi2SecurityException("Invalid secret token.", null, executionContext); // done return InterceptorResult.DEFAULT; }
@Override public InterceptorResult before(Message message, ExecutionContext executionContext, ExecutionResult executionResult) throws Xdi2MessagingException { // look for HttpTransport, HttpRequest, HttpResponse TransportRequest request = AbstractTransport.getRequest(executionContext); if (! (request instanceof HttpTransportRequest)) return InterceptorResult.DEFAULT; HttpTransportRequest httpRequest = (HttpTransportRequest) request; // add <$ip> String remoteAddr = httpRequest.getRemoteAddr(); XdiAttribute ipXdiAttribute = XdiAttributeSingleton.fromContextNode(message.getContextNode().setDeepContextNode(XDI_ADD_IP)); LiteralNode ipLiteral = ipXdiAttribute.setLiteralString(remoteAddr); if (log.isDebugEnabled()) log.debug("IP: " + ipLiteral.getStatement()); // done return InterceptorResult.DEFAULT; }
literalStatement = new SingleItemIterator<Statement> (this.getLiteralNode().getStatement());
@Override public void executeGetOnLiteralStatement(XDIStatement literalStatement, GetOperation operation, Graph operationResultGraph, ExecutionContext executionContext) throws Xdi2MessagingException { XDIAddress contextNodeXDIAddress = literalStatement.getContextNodeXDIAddress(); Object literalData = literalStatement.getLiteralData(); ContextNode contextNode = this.getGraph().getDeepContextNode(contextNodeXDIAddress); if (contextNode == null) return; LiteralNode literalNode = contextNode.getLiteralNode(literalData); if (literalNode == null) return; CopyUtil.copyStatement(literalNode.getStatement(), operationResultGraph, null); }
@Override public Statement getStatement(XDIStatement statement) { ContextNode baseContextNode = this.getDeepContextNode(statement.getSubject(), false); if (baseContextNode == null) return null; if (statement.isContextNodeStatement()) { ContextNode contextNode = baseContextNode.getContextNode(statement.getContextNodeXDIArc(), false); return contextNode == null ? null : contextNode.getStatement(); } else if (statement.isRelationStatement()) { Relation relation = baseContextNode.getRelation(statement.getRelationXDIAddress(), statement.getTargetXDIAddress()); return relation == null ? null : relation.getStatement(); } else if (statement.isLiteralStatement()) { LiteralNode literalNode = baseContextNode.getLiteralNode(statement.getLiteralData()); return literalNode == null ? null : literalNode.getStatement(); } return null; }
@Override public Statement setStatement(XDIStatement statement) { // set the statement if (statement.isContextNodeStatement()) { ContextNode contextNode = (ContextNode) this.setDeepNode(statement.getTargetXDIAddress()); return contextNode.getStatement(); } else if (statement.isRelationStatement()) { ContextNode contextNode = (ContextNode) this.setDeepNode(statement.getContextNodeXDIAddress()); Relation relation = contextNode.setRelation(statement.getRelationXDIAddress(), statement.getTargetXDIAddress()); return relation.getStatement(); } else if (statement.isLiteralStatement()) { ContextNode contextNode = (ContextNode) this.setDeepNode(statement.getContextNodeXDIAddress()); LiteralNode literalNode = contextNode.setLiteralNode(statement.getLiteralData()); return literalNode.getStatement(); } else { throw new Xdi2GraphException("Invalid statement: " + statement); } }
public void testImplied() throws Exception { Graph graph21 = this.getGraphFactory().openGraph(this.getClass().getName() + "-graph-21"); ContextNode webmarkus = graph21.setDeepContextNode(XDIAddress.create("=web=markus")); ContextNode animesh = graph21.setDeepContextNode(XDIAddress.create("=animesh")); Relation friend = webmarkus.setRelation(XDIAddress.create("#friend"), animesh); ContextNode value = webmarkus.setContextNode(XDIArc.create("<#name>")); LiteralNode name = value.setLiteralNode("Markus Sabadello"); ContextNode web = webmarkus.getContextNode(); assertTrue(webmarkus.getStatement().isImplied()); assertTrue(animesh.getStatement().isImplied()); assertFalse(friend.getStatement().isImplied()); assertTrue(value.getStatement().isImplied()); assertFalse(name.getStatement().isImplied()); assertTrue(web.getStatement().isImplied()); graph21.close(); }