Class MemoryUserStore

  • All Implemented Interfaces:
    edu.uiuc.ncsa.security.core.Store<User>, edu.uiuc.ncsa.security.storage.MonitoredStoreInterface<User>, Serializable, Cloneable, Map<edu.uiuc.ncsa.security.core.Identifier,​User>, UserStore

    public class MemoryUserStore
    extends edu.uiuc.ncsa.security.storage.monitored.MonitoredMemoryStore<User>
    implements UserStore
    NOTE: This does not retain the serial strings (or users) across system reboots. This is at this point in time, a debugging tool.

    Created by Jeff Gaynor
    on 3/13/12 at 2:20 PM

    See Also:
    Serialized Form
    • Constructor Detail

      • MemoryUserStore

        public MemoryUserStore​(edu.uiuc.ncsa.security.core.util.IdentifiableProviderImpl<User> up,
                               Incrementable incrementable)
    • Method Detail

      • createAndRegisterUser

        public User createAndRegisterUser​(UserMultiID userMultiKey,
                                          String idP,
                                          String idPDisplayName,
                                          String firstName,
                                          String lastName,
                                          String email,
                                          String affiliation,
                                          String displayName,
                                          String organizationalUnit)
        Description copied from interface: UserStore
        Create a user from all the given possible information. Some of this might be missing, but the minimal set is the remoteUser and idp. Note that this creates the user uid too AND it registers the user.
        Specified by:
        createAndRegisterUser in interface UserStore
        Returns:
      • get

        public Collection<User> get​(UserMultiID userMultiKey,
                                    String idP)
        Description copied from interface: UserStore
        The remote user and idp together form a composite key for access. (Our URIs are internally generated unique identifiers and are not used outside of the store).
        Specified by:
        get in interface UserStore
        Returns:
      • getUserID

        public edu.uiuc.ncsa.security.core.Identifier getUserID​(UserMultiID userMultiKey,
                                                                String idP)
        Description copied from interface: UserStore
        Resolves the user id given the remoteUser and IdP.
        Specified by:
        getUserID in interface UserStore
        Returns:
      • getUserProvider

        protected UserProvider getUserProvider()
      • put

        public User put​(edu.uiuc.ncsa.security.core.Identifier key,
                        User value)
        Specified by:
        put in interface Map<edu.uiuc.ncsa.security.core.Identifier,​User>
        Overrides:
        put in class HashMap<edu.uiuc.ncsa.security.core.Identifier,​User>
      • create

        public User create​(boolean newIdentifier)
        Description copied from interface: UserStore
        Create a user, optionally with a new serial string. The default behavior for this store is that new users are not created with a new serial identifier (or various operations such as listing users can run through a great many unused identifiers and if they are expensive to create, such as from an SQL database, this might slow down the application noticeably.)
        Specified by:
        create in interface UserStore
        Returns:
      • create

        public User create()
        Specified by:
        create in interface edu.uiuc.ncsa.security.core.Store<User>
        Overrides:
        create in class edu.uiuc.ncsa.security.storage.MemoryStore<User>
      • save

        public void save​(User value)
        Specified by:
        save in interface edu.uiuc.ncsa.security.core.Store<User>
        Overrides:
        save in class edu.uiuc.ncsa.security.storage.MemoryStore<User>
      • get

        public User get​(Object key)
        Specified by:
        get in interface Map<edu.uiuc.ncsa.security.core.Identifier,​User>
        Overrides:
        get in class edu.uiuc.ncsa.security.storage.monitored.MonitoredMemoryStore<User>
      • updateCheckSerialString

        public void updateCheckSerialString​(User user,
                                            boolean noNewSerialID)
        Description copied from interface: UserStore
        Save the current user but do not change the serial identifier. Note that this circumvents the contract for Store.update(edu.uiuc.ncsa.security.core.Identifiable) for this interface, which, because of issue CIL-69 requires it in most cases. This is in effect an internal call that allows for administrative updates. If noNewSerialID = false, then the effect is the same as calling Store.update(Identifiable) and a new serial id is created.
        Specified by:
        updateCheckSerialString in interface UserStore
      • update

        public void update​(User value)
        Specified by:
        update in interface edu.uiuc.ncsa.security.core.Store<User>
        Overrides:
        update in class edu.uiuc.ncsa.security.storage.MemoryStore<User>
      • getMapConverter

        public edu.uiuc.ncsa.security.storage.data.MapConverter getMapConverter()
        Specified by:
        getMapConverter in interface UserStore
        Overrides:
        getMapConverter in class edu.uiuc.ncsa.security.storage.MemoryStore<User>
      • getXMLConverter

        public edu.uiuc.ncsa.security.core.XMLConverter<User> getXMLConverter()
        Specified by:
        getXMLConverter in interface edu.uiuc.ncsa.security.core.Store<User>
        Overrides:
        getXMLConverter in class edu.uiuc.ncsa.security.storage.monitored.MonitoredMemoryStore<User>
      • getMostRecent

        public List<User> getMostRecent​(int n,
                                        List<String> attributes)
        Specified by:
        getMostRecent in interface edu.uiuc.ncsa.security.core.Store<User>
        Overrides:
        getMostRecent in class edu.uiuc.ncsa.security.storage.monitored.MonitoredMemoryStore<User>