use of org.xwiki.crypto.Digest in project xwiki-platform by xwiki.
the class SignedMacroBlockReferenceResolverTest method setUp.
@Before
public void setUp() throws Exception {
DigestFactory digestFactory = mocker.getInstance(DigestFactory.class, "SHA-1");
BinaryStringEncoder encoder = mocker.getInstance(BinaryStringEncoder.class, "Base64");
dumper = mocker.getInstance(BlockDumper.class, "macro");
Digest digest = mock(Digest.class);
stream = new ByteArrayOutputStream();
when(digest.getOutputStream()).thenReturn(stream);
when(digest.digest()).thenReturn(DIGEST_BLOCK);
when(digestFactory.getInstance()).thenReturn(digest);
when(encoder.encode(DIGEST_BLOCK)).thenReturn(ENCODED);
}
use of org.xwiki.crypto.Digest in project xwiki-platform by xwiki.
the class SignedMacroBlockReferenceResolver method resolve.
/**
* {@inheritDoc}
*
* This implementation is specific for macro blocks. The block argument could be either
* a {@link org.xwiki.rendering.block.MacroBlock} or a {@link org.xwiki.rendering.block.MacroMarkerBlock}.
*/
@Override
public BlockReference resolve(Block block, Object... parameters) {
EntityReference parent = null;
if (parameters.length > 0 && parameters[0] instanceof EntityReference) {
// Try to extract the type from the passed parameter.
parent = (EntityReference) parameters[0];
}
Digest digest = digestFactory.getInstance();
try {
dumper.dump(digest.getOutputStream(), block);
return new BlockReference(new EntityReference(encoder.encode(digest.digest()), EntityType.BLOCK, parent));
} catch (IOException ignore) {
// Ignored
}
return null;
}
Aggregations