use of opengrok.auth.plugin.ldap.AbstractLdapProvider in project OpenGrok by OpenGrok.
the class LdapUserPluginTest method testNegativeCache.
@Test
void testNegativeCache() throws LdapException {
AbstractLdapProvider mockprovider = mock(LdapFacade.class);
when(mockprovider.lookupLdapContent(isNull(), isNull(), any(String[].class))).thenReturn(null);
Map<String, Object> params = getParamsMap();
params.put(LdapUserPlugin.ATTRIBUTES, "mail");
params.put(LdapUserPlugin.USE_DN, false);
LdapUserPlugin origPlugin = new LdapUserPlugin();
LdapUserPlugin plugin = Mockito.spy(origPlugin);
plugin.load(params, mockprovider);
assertSame(mockprovider, plugin.getLdapProvider());
HttpServletRequest dummyRequest = new DummyHttpServletRequestLdap();
User user = new User("foo@example.com", "id");
dummyRequest.setAttribute(UserPlugin.REQUEST_ATTR, new User("foo", "123"));
plugin.fillSession(dummyRequest, user);
assertNotNull(dummyRequest.getSession().getAttribute(SESSION_ATTR));
assertFalse(plugin.isAllowed(dummyRequest, new Project("foo")));
assertFalse(plugin.isAllowed(dummyRequest, new Group("bar")));
// Make sure that the session was filled so that the second call to isAllowed() did not fill it again.
verify(plugin, times(2)).updateSession(eq(dummyRequest), anyString(), anyBoolean());
}
Aggregations