/** * All users who can login to the system. */ public List<User> getAllUsers() { List<User> r = new ArrayList<User>(); for (User u : User.getAll()) { if(u.getProperty(Details.class)!=null) r.add(u); } Collections.sort(r); return r; }
/** * Computes if this Hudson has some user accounts configured. * * <p> * This is used to check for the initial */ private static boolean hasSomeUser() { for (User u : User.getAll()) if(u.getProperty(Details.class)!=null) return true; return false; }
public static PaneStatusProperties forCurrentUser() { final User current = User.current(); if (current == null) { return FALLBACK; } return current.getProperty(PaneStatusProperties.class); }
@Override public boolean isActivated() { return User.getAll().stream() .anyMatch(user -> { ApiTokenProperty apiTokenProperty = user.getProperty(ApiTokenProperty.class); return (apiTokenProperty != null && apiTokenProperty.hasLegacyToken()); }); }
/** * Updates the user object by adding a property. */ public synchronized void addProperty(@Nonnull UserProperty p) throws IOException { UserProperty old = getProperty(p.getClass()); List<UserProperty> ps = new ArrayList<>(properties); if (old != null) ps.remove(old); ps.add(p); p.setUser(this); properties = ps; save(); }
@Restricted(NoExternalUse.class) public List<User> getImpactedUserList() { return User.getAll().stream() .filter(user -> { ApiTokenProperty apiTokenProperty = user.getProperty(ApiTokenProperty.class); return (apiTokenProperty != null && apiTokenProperty.hasLegacyToken()); }) .collect(Collectors.toList()); }
private void allocateDefaultPropertyInstancesAsNeeded() { for (UserPropertyDescriptor d : UserProperty.all()) { if (getProperty(d.clazz) == null) { UserProperty up = d.newInstance(this); if (up != null) properties.add(up); } } }
/** * Determine if the user has at least one "new" token that was created after the last use of the legacy token */ // used by Jelly view @Restricted(NoExternalUse.class) public boolean hasFreshToken(@Nonnull User user, @Nullable ApiTokenProperty.TokenInfoAndStats legacyStats) { if (legacyStats == null) { return false; } ApiTokenProperty apiTokenProperty = user.getProperty(ApiTokenProperty.class); return apiTokenProperty.getTokenList().stream() .filter(token -> !token.isLegacy) .anyMatch(token -> { Date creationDate = token.creationDate; Date lastUseDate = legacyStats.lastUseDate; if (lastUseDate == null) { lastUseDate = legacyStats.creationDate; } return creationDate != null && lastUseDate != null && creationDate.after(lastUseDate); }); }
/** * Determine if the user has at least one "new" token that was used after the last use of the legacy token */ // used by Jelly view @Restricted(NoExternalUse.class) public boolean hasMoreRecentlyUsedToken(@Nonnull User user, @Nullable ApiTokenProperty.TokenInfoAndStats legacyStats) { if (legacyStats == null) { return false; } ApiTokenProperty apiTokenProperty = user.getProperty(ApiTokenProperty.class); return apiTokenProperty.getTokenList().stream() .filter(token -> !token.isLegacy) .anyMatch(token -> { Date currentLastUseDate = token.lastUseDate; Date legacyLastUseDate = legacyStats.lastUseDate; if (legacyLastUseDate == null) { legacyLastUseDate = legacyStats.creationDate; } return currentLastUseDate != null && legacyLastUseDate != null && currentLastUseDate.after(legacyLastUseDate); }); }
@Restricted(NoExternalUse.class) public @Nullable ApiTokenStore.HashedToken getLegacyTokenOf(@Nonnull User user) { ApiTokenProperty apiTokenProperty = user.getProperty(ApiTokenProperty.class); ApiTokenStore.HashedToken legacyToken = apiTokenProperty.getTokenStore().getLegacyToken(); return legacyToken; }
public static boolean isCaseInsensitive(){ User user = User.current(); if (user == null) { return DEFAULT_SEARCH_CASE_INSENSITIVE_MODE; } return user.getProperty(UserSearchProperty.class).getInsensitiveSearch(); }
@Override public Details loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException { User u = User.getById(username, false); Details p = u!=null ? u.getProperty(Details.class) : null; if(p==null) throw new UsernameNotFoundException("Password is not set: "+username); if(p.getUser()==null) throw new AssertionError(); return p; }
@Restricted(NoExternalUse.class) public @Nullable ApiTokenProperty.TokenInfoAndStats getLegacyStatsOf(@Nonnull User user, @Nullable ApiTokenStore.HashedToken legacyToken) { ApiTokenProperty apiTokenProperty = user.getProperty(ApiTokenProperty.class); if (legacyToken != null) { ApiTokenStats.SingleTokenStats legacyStats = apiTokenProperty.getTokenStats().findTokenStatsById(legacyToken.getUuid()); ApiTokenProperty.TokenInfoAndStats tokenInfoAndStats = new ApiTokenProperty.TokenInfoAndStats(legacyToken, legacyStats); return tokenInfoAndStats; } // in case the legacy token was revoked during the request return null; }
protected UserDetails attemptToImpersonate(String username, RuntimeException e) { // this backend cannot tell if the user name exists or not. so substitute by what we know User u = User.getById(username, false); if (u!=null) { LastGrantedAuthoritiesProperty p = u.getProperty(LastGrantedAuthoritiesProperty.class); if (p!=null) return new org.acegisecurity.userdetails.User(username,"",true,true,true,true, p.getAuthorities()); } throw e; } }
@Restricted(NoExternalUse.class) public boolean mustDisplayLegacyApiToken(User propertyOwner) { ApiTokenProperty property = propertyOwner.getProperty(ApiTokenProperty.class); if(property != null && property.apiToken != null){ return true; } return ApiTokenPropertyConfiguration.get().isCreationOfLegacyTokenEnabled(); }
/** * Locates the user who owns this identifier. */ @CheckForNull public final User locateUser() { Class<? extends FederatedLoginServiceUserProperty> pt = getUserPropertyClass(); String id = getIdentifier(); for (User u : User.getAll()) { if (u.getProperty(pt).has(id)) return u; } return null; }
@Override protected void loggedIn(@Nonnull String username) { try { // user should have been created but may not have been saved for some realms // but as this is a callback of a successful login we can safely create the user. User u = User.getById(username, true); LastGrantedAuthoritiesProperty o = u.getProperty(LastGrantedAuthoritiesProperty.class); if (o==null) u.addProperty(o=new LastGrantedAuthoritiesProperty()); Authentication a = Jenkins.getAuthentication(); if (a!=null && a.getName().equals(username)) o.update(a); // just for defensive sanity checking } catch (IOException e) { LOGGER.log(Level.WARNING, "Failed to record granted authorities",e); } }
@RequirePOST public synchronized HttpResponse doRenewSessionSeed(@AncestorInPath @Nonnull User u) throws IOException { u.checkPermission(Jenkins.ADMINISTER); if (DISABLE_USER_SEED) { return HttpResponses.error(404, "User seed feature is disabled"); } try (BulkChange bc = new BulkChange(u)) { UserSeedProperty p = u.getProperty(UserSeedProperty.class); p.renewSeed(); LastGrantedAuthoritiesProperty lastGranted = u.getProperty(LastGrantedAuthoritiesProperty.class); if (lastGranted != null) { lastGranted.invalidate(); } bc.commit(); } return HttpResponses.ok(); }
@Override protected String makeTokenSignature(long tokenExpiryTime, UserDetails userDetails) { String userSeed; if (UserSeedProperty.DISABLE_USER_SEED) { userSeed = "no-seed"; } else { User user = User.getById(userDetails.getUsername(), false); if (user == null) { return "no-user"; } UserSeedProperty userSeedProperty = user.getProperty(UserSeedProperty.class); if (userSeedProperty == null) { // if you want to filter out the user seed property, you should consider using the DISABLE_USER_SEED instead return "no-prop"; } userSeed = userSeedProperty.getSeed(); } String token = String.join(":", userDetails.getUsername(), Long.toString(tokenExpiryTime), userSeed, getKey()); return MAC.mac(token); }
/** * Adds this identity to the specified user. */ public void addTo(User u) throws IOException { FederatedLoginServiceUserProperty p = u.getProperty(getUserPropertyClass()); if (p==null) { p = (FederatedLoginServiceUserProperty) UserProperty.all().find(getUserPropertyClass()).newInstance(u); u.addProperty(p); } p.addIdentifier(getIdentifier()); }