@SuppressWarnings("unchecked") protected AuthenticationInfo internalClientGetAuthenticationInfo(final AuthenticationToken authenticationToken) { final UsernamePasswordAndClientToken clientToken = (UsernamePasswordAndClientToken) authenticationToken; log.debug("clientToken : {}", clientToken); if (clientToken == null) { return null; } final Credentials credentials = (Credentials) clientToken.getCredentials(); log.debug("credentials : {}", credentials); final Client<Credentials, CommonProfile> client = this.clients.findClient(clientToken.getClientName()); log.debug("client : {}", client); final CommonProfile profile = client.getUserProfile(credentials, clientToken.getContext()); log.debug("profile : {}", profile); if (profile == null) { final String message = "No profile retrieved from authentication using client : " + client + " and credentials : " + credentials; log.info(message); throw new AuthenticationException(message); } // refresh authentication token with user id final String userId = profile.getTypedId(); clientToken.setUserId(userId); // set rememberMe status clientToken.setRememberMe(profile.isRemembered()); return internalClientGetAuthenticationInfo(profile, credentials); }
@Test public void testNoRme() { final RememberMeAuthorizationGenerator ag = new RememberMeAuthorizationGenerator<>(); ag.generate(MockWebContext.create(), profile); assertFalse(profile.isRemembered()); }
@Test public void testGoodSpecialRmeValue() { final RememberMeAuthorizationGenerator ag = new RememberMeAuthorizationGenerator<>("r", "y"); final MockWebContext context = MockWebContext.create().addRequestParameter("r", "y"); ag.generate(context, profile); assertTrue(profile.isRemembered()); }
@Test public void testGoodRmeValue() { final RememberMeAuthorizationGenerator ag = new RememberMeAuthorizationGenerator<>(); final MockWebContext context = MockWebContext.create().addRequestParameter("rme", "true"); ag.generate(context, profile); assertTrue(profile.isRemembered()); }
@Test public void testBadRmeValue() { final RememberMeAuthorizationGenerator ag = new RememberMeAuthorizationGenerator<>(); final MockWebContext context = MockWebContext.create().addRequestParameter("rme", "no"); ag.generate(context, profile); assertFalse(profile.isRemembered()); }