В случае, если кто-то сталкивается с той же проблемой: ссылка URI, кажется, появляется только тогда, когда фактический объект ответа маршалируется и затем подписывается. Только подписать его без сортировки недостаточно. В моем случае я шифрую утверждение после его подписания.
Element responseTxt = new ResponseMarshaller().marshall(resp);
Signer.signObject(signature);
EncryptedAssertion encryptedAssertion = getEncryptedAssertion(resp.getAssertions().get(0), credential);
resp.getAssertions().clear();
resp.getEncryptedAssertions().add(encryptedAssertion);