Class CrowdTool


  • public class CrowdTool
    extends java.lang.Object
    Atlassian Crowd API toolbox
    see https://docs.atlassian.com/atlassian-crowd/latest/REST
    see https://developer.atlassian.com/display/CROWDDEV/JSON+Requests+and+Responses
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  CrowdTool.CrowdUser
      Crowd User
    • Constructor Summary

      Constructors 
      Constructor Description
      CrowdTool()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void authent​(java.lang.String login, java.lang.String pwd)
      Single authentication of user (does not create a CROWD session)
      static java.lang.String call​(java.lang.String service, java.lang.String method, java.util.Map<java.lang.String,​java.lang.String> params)
      Call the API with CROWD_* parameters
      static java.lang.String createSession​(java.lang.String login, java.lang.String pwd)
      Create a user session with authentication (reuse if already exists)
      static boolean debug()
      Debug mode?
      static java.lang.String fallBackURL()
      Get fallback URL
      static java.util.List<java.lang.String> getChildGroups​(java.lang.String parent)
      Group children
      static java.lang.String getTokenKey()
      Get token key
      static java.lang.String getURL()
      Get URL
      static CrowdTool.CrowdUser getUser​(java.lang.String login)
      Get all user information (attributes and groups)
      static java.lang.String getUserAttributes​(java.lang.String login)
      Get user attributes (last-name, first-name, email...)
      static java.util.List<java.lang.String> getUserGroups​(java.lang.String login, boolean nested)
      List the user groups
      static java.util.List<java.lang.String> getUsers​(java.lang.String group, boolean nested, int limit)
      List group members
      static boolean invalidateOnLogout()
      Invalidate on logout?
      static void invalidateSession​(java.lang.String token)
      Invalidate a user session
      static java.lang.String logoutURL()
      Get logout URL
      static java.lang.String searchUsers​(java.lang.String filter)
      User search
      static void setUser​(java.lang.String login, SessionInfo info)
      Set the session info with Crowd user
      static void syncGroup​(java.lang.String group, boolean nested, ObjectDB obj)
      Import users from a Crowd group
      static java.lang.String syncGroups​(ObjectDB group)
      Import users from CROWD_SYNC_GROUPS list
      static boolean useLocalAuth()
      Use local authentication?
      static boolean useSSO()
      use SSO?
      static java.lang.String validateSession​(java.lang.String token)
      Validate a user session
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • CrowdTool

        public CrowdTool()
    • Method Detail

      • getURL

        public static java.lang.String getURL()
        Get URL
      • useSSO

        public static boolean useSSO()
        use SSO?
      • debug

        public static boolean debug()
        Debug mode?
      • getTokenKey

        public static java.lang.String getTokenKey()
        Get token key
      • useLocalAuth

        public static boolean useLocalAuth()
        Use local authentication?
      • fallBackURL

        public static java.lang.String fallBackURL()
        Get fallback URL
      • invalidateOnLogout

        public static boolean invalidateOnLogout()
        Invalidate on logout?
      • logoutURL

        public static java.lang.String logoutURL()
        Get logout URL
      • call

        public static java.lang.String call​(java.lang.String service,
                                            java.lang.String method,
                                            java.util.Map<java.lang.String,​java.lang.String> params)
        Call the API with CROWD_* parameters
        Parameters:
        service - Service parameters to add to CROWD_URL
        method - HTTP method GET|POST|PUT|DELETE
        params - Optional parameters to POST
        Returns:
        GET response as JSON
      • authent

        public static void authent​(java.lang.String login,
                                   java.lang.String pwd)
                            throws java.lang.Exception
        Single authentication of user (does not create a CROWD session)
        Parameters:
        login - User login
        pwd - User password
        Throws:
        java.lang.Exception
      • validateSession

        public static java.lang.String validateSession​(java.lang.String token)
                                                throws java.lang.Exception
        Validate a user session
        Parameters:
        token - Session token
        Returns:
        user login
        Throws:
        java.lang.Exception
      • createSession

        public static java.lang.String createSession​(java.lang.String login,
                                                     java.lang.String pwd)
                                              throws java.lang.Exception
        Create a user session with authentication (reuse if already exists)
        Parameters:
        login - User login
        pwd - User password
        Returns:
        session token
        Throws:
        java.lang.Exception
      • invalidateSession

        public static void invalidateSession​(java.lang.String token)
        Invalidate a user session
        Parameters:
        token - Session token
      • getUsers

        public static java.util.List<java.lang.String> getUsers​(java.lang.String group,
                                                                boolean nested,
                                                                int limit)
        List group members
        Parameters:
        group - CROWD group name
        nested - deep search?
        limit - response max results
        Returns:
        array of logins or null
      • getUserAttributes

        public static java.lang.String getUserAttributes​(java.lang.String login)
        Get user attributes (last-name, first-name, email...)
        Parameters:
        login -
        Returns:
        JSON object
      • getUserGroups

        public static java.util.List<java.lang.String> getUserGroups​(java.lang.String login,
                                                                     boolean nested)
        List the user groups
        Parameters:
        login -
        nested - deep search?
        Returns:
        List of granted groups
      • getUser

        public static CrowdTool.CrowdUser getUser​(java.lang.String login)
        Get all user information (attributes and groups)
        Parameters:
        login - User login
        Returns:
        Crowd user
      • setUser

        public static void setUser​(java.lang.String login,
                                   SessionInfo info)
        Set the session info with Crowd user
        Parameters:
        login - Login of user
        info - Session info to load
      • getChildGroups

        public static java.util.List<java.lang.String> getChildGroups​(java.lang.String parent)
        Group children
        Parameters:
        parent - Parent group
        Returns:
        array of groups
      • searchUsers

        public static java.lang.String searchUsers​(java.lang.String filter)
        User search
        Parameters:
        filter - Filter with wildcard to search in full name or email (ex : john*)
        Returns:
        JSON object with users
      • syncGroups

        public static java.lang.String syncGroups​(ObjectDB group)
        Import users from CROWD_SYNC_GROUPS list
      • syncGroup

        public static void syncGroup​(java.lang.String group,
                                     boolean nested,
                                     ObjectDB obj)
        Import users from a Crowd group
        Parameters:
        group - CROWD Group name
        nested - deep search?
        obj - optional caller object (asynchronous action)