in src/main/java/org/apache/sling/launchpad/webapp/integrationtest/resourceresolver/ResourceResolverGeneralTest.java [350:386]
public void test_attributes_from_authInfo() throws Exception {
final Map<String, Object> authInfo = new HashMap<String, Object>();
authInfo.put(ResourceResolverFactory.USER, "admin");
authInfo.put(ResourceResolverFactory.PASSWORD, "admin".toCharArray());
authInfo.put("testAttributeString", "AStringValue");
authInfo.put("testAttributeNumber", 999);
final ResourceResolver rr = this.resourceResolverFactory.getResourceResolver(authInfo);
final Session s = rr.adaptTo(Session.class);
try {
assertEquals("Expect 4 session attributes", 4, s.getAttributeNames().length);
assertEquals("AStringValue", s.getAttribute("testAttributeString"));
assertEquals(999, s.getAttribute("testAttributeNumber"));
assertEquals("admin", s.getAttribute(ResourceResolverFactory.USER));
assertNull(session.getAttribute(ResourceResolverFactory.PASSWORD));
assertEquals("AStringValue", rr.getAttribute("testAttributeString"));
assertEquals(999, rr.getAttribute("testAttributeNumber"));
assertEquals("admin", rr.getAttribute(ResourceResolverFactory.USER));
assertNull(rr.getAttribute(ResourceResolverFactory.PASSWORD));
final HashSet<String> validNames = new HashSet<String>();
validNames.add(ResourceResolverFactory.USER);
validNames.add("testAttributeString");
validNames.add("testAttributeNumber");
validNames.add("oak.bound-principals"); // new in oak 1.40.0 from OAK-9415
final Iterator<String> names = rr.getAttributeNames();
assertTrue(validNames.remove(names.next()));
assertTrue(validNames.remove(names.next()));
assertTrue(validNames.remove(names.next()));
assertTrue(validNames.remove(names.next()));
assertFalse("Expect no more names", names.hasNext());
assertTrue("Expect validNames set to be empty now", validNames.isEmpty());
} finally {
rr.close();
}
}