@Override public boolean doAuthenticate(Context context) { return getLoginPasswordAuthenticator().authenticate(context.getUsername(), context.getPassword()); } };
/** * Override this method in order to load user group information. * * @return list of groups associated with specified user, or null if such user doesn't exist * @throws RuntimeException in case of unexpected error such as connection failure * @since 5.2 */ public Collection<String> doGetGroups(Context context) { return doGetGroups(context.getUsername()); }
/** * Override this method in order load user information. * * @return the user, or null if user doesn't exist * @throws RuntimeException in case of unexpected error such as connection failure * @since 3.1 */ public UserDetails doGetUserDetails(Context context) { return doGetUserDetails(context.getUsername()); }
@Test public void doGetUserDetails_deprecated_api() { ExternalUsersProvider provider = new ExternalUsersProvider() { @Override public UserDetails doGetUserDetails(String username) { UserDetails user = new UserDetails(); user.setName(username); user.setEmail("foo@bar.com"); return user; } }; UserDetails user = provider.doGetUserDetails(new ExternalUsersProvider.Context("foo", mock(HttpServletRequest.class))); assertThat(user.getName()).isEqualTo("foo"); assertThat(user.getEmail()).isEqualTo("foo@bar.com"); } }
private void executeAuthenticate(String login) { when(authenticator.doAuthenticate(any(Authenticator.Context.class))).thenReturn(true); UserDetails userDetails = new UserDetails(); userDetails.setName("name"); when(externalUsersProvider.doGetUserDetails(any(ExternalUsersProvider.Context.class))).thenReturn(userDetails); underTest.authenticate(new Credentials(login, PASSWORD), request, BASIC); }
@Test public void getLoginPasswordAuthenticator_deprecated_method_replaced_by_getAuthenticator() { final LoginPasswordAuthenticator deprecatedAuthenticator = mock(LoginPasswordAuthenticator.class); SecurityRealm realm = new SecurityRealm() { @Override public LoginPasswordAuthenticator getLoginPasswordAuthenticator() { return deprecatedAuthenticator; } }; Authenticator proxy = realm.doGetAuthenticator(); Authenticator.Context context = new Authenticator.Context("foo", "bar", mock(HttpServletRequest.class)); proxy.doAuthenticate(context); verify(deprecatedAuthenticator).authenticate("foo", "bar"); } }
@Override public UserDetails doGetUserDetails(Context context) { Preconditions.checkNotNull(context.getUsername()); Preconditions.checkNotNull(context.getRequest()); UserDetails user = new UserDetails(); user.setName(context.getUsername()); user.setEmail("foo@bar.com"); return user; } };
@Override public void start() { realm = securityRealmFactory.getRealm(); if (realm != null) { authenticator = requireNonNull(realm.doGetAuthenticator(), "No authenticator available"); externalUsersProvider = requireNonNull(realm.getUsersProvider(), "No users provider available"); externalGroupsProvider = realm.getGroupsProvider(); } }
@Override public UserDetails doGetUserDetails(String username) { UserDetails user = new UserDetails(); user.setName(username); user.setEmail("foo@bar.com"); return user; } };
@Test public void doGetGroupsNoOverride() { ExternalGroupsProvider groupsProvider = new ExternalGroupsProvider() { }; String userName = "foo"; assertThat(groupsProvider.doGetGroups(userName)).isNull(); assertThat(groupsProvider.doGetGroups(new ExternalGroupsProvider.Context(userName, mock(HttpServletRequest.class)))).isNull(); }
private static boolean groupNameValidForProject(ComponentDto project, String groupName) { return !project.isPrivate() || !isAnyone(groupName); }
private static SecurityRealm selectRealm(SecurityRealm[] realms, String realmName) { for (SecurityRealm realm : realms) { if (StringUtils.equals(realmName, realm.getName())) { return realm; } } return null; }
@Override public void init() { authenticator.init(); }
@Before public void init() { userDetails = new UserDetails(); }
@Test public void doGetGroupsDeprecatedApi() { final Map<String, Collection<String>> userGroupsMap = getTestUserGroupMapping(); ExternalGroupsProvider groupsProvider = new ExternalGroupsProvider() { @Override public Collection<String> doGetGroups(String username) { Preconditions.checkNotNull(username); return userGroupsMap.get(username); } }; runDoGetGroupsTests(groupsProvider, userGroupsMap); }
private static Map<String, Collection<String>> getTestUserGroupMapping() { Map<String, Collection<String>> userGroupsMap = new HashMap<>(); addUserGroupMapping(userGroupsMap, "userWithOneGroups", new String[] {"group1"}); addUserGroupMapping(userGroupsMap, "userWithTwoGroups", new String[] {"group1", "group2"}); addUserGroupMapping(userGroupsMap, "userWithNoGroup", new String[] {}); addUserGroupMapping(userGroupsMap, "userWithNullGroup", null); return userGroupsMap; }
public boolean isAnyone() { return !hasId() && DefaultGroups.isAnyone(name); }
private Source realmEventSource(AuthenticationEvent.Method method) { return Source.realm(method, realm.getName()); }
@Test public void doGetGroupsTests() { final Map<String, Collection<String>> userGroupsMap = getTestUserGroupMapping(); ExternalGroupsProvider groupsProvider = new ExternalGroupsProvider() { @Override public Collection<String> doGetGroups(Context context) { Preconditions.checkNotNull(context.getUsername()); Preconditions.checkNotNull(context.getRequest()); return userGroupsMap.get(context.getUsername()); } }; runDoGetGroupsTests(groupsProvider, userGroupsMap); }
@CheckForNull private String getExternalUserAuthentication() { SecurityRealm realm = securityRealmFactory.getRealm(); return realm == null ? null : realm.getName(); }