You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Get a server

Here is an example with AWS, basically for this example you need a Unix-based server (or Mac).  Install Docker as well

Install the container

  1. Install docker (note, using a server with systemd is easier)
  2. See which version of Grouper to run (at least v2.5.26)
  3. Pull the image

    bin $ docker pull i2incommon/grouper:2.5.XX
  4. Make sure the digest is correct (from release notes page)

    [root@ip-172-30-3-152 ~]# docker image inspect i2incommon/grouper:2.5.XX | grep i2incommon/grouper@sha256
                "i2incommon/grouper@sha256:b675bb410bf873xxxxxxxxxxxxxx5e58a3a42a8048381a33b79fd19"
  5. Make a start command.  Note, for the morph string encrypt and quick start pass, just make up a 16 char alphanumeric string or generate from a password manager.   Note, this is not good security.  It is for quick starts only.  As you evolve to maturity level 0, you can set a password encrypted in the database which will not be in a script file or in an env variable, and you can evolve to Shibboleth or another authentication system.

    grouperContainer $ vi /opt/grouperContainer/grouperQsDockerRun.sh
    
    #!/bin/bash  (or whatever shell)
    
    docker run --detach --name grouper-qs --publish 443:443 -e GROUPER_MORPHSTRING_ENCRYPT_KEY=******** -e GROUPERSYSTEM_QUICKSTART_PASS=******** i2incommon/grouper:2.5.XX quickstart
    
    
    grouperContainer $ chmod +x /opt/grouperContainer/grouperQsDockerRun.sh
  6. Log in to UI

    Go to: https://localhost/grouper/Log in with username : GrouperSystemPassword is the password you specified in the GrouperSystem QuickStart pass





  7. Try a web service call

    Get the client out of the container (or download from maven)
    
    $ docker cp grouper-qs:/opt/grouper/grouperWebapp/WEB-INF/lib/grouperClient-2.5.XX.jar .
    
    Now you should have a grouper client jar in your directory
    Make a config file in the same directory
    
    $ vi grouper.client.properties
    
    grouperClient.webService.url = https://localhost/grouper-ws/servicesRest
    grouperClient.webService.login = GrouperSystem
    grouperClient.webService.password = pass
    grouperClient.https.customSocketFactory = edu.internet2.middleware.grouperClient.ssl.EasySslSocketFactory
    
    
    
    $ java -jar grouperClient-2.5.0-SNAPSHOT.jar --operation=getSubjectsWs --subjectIds=GrouperSystem
    Index: 0: success: T, code: SUCCESS, subject: GrouperSystem
    $ 
    
    

    grouperContainer $ java -jar grouperClient-2.5.0-SNAPSHOT.jar --operation=getSubjectsWs --subjectIds=GrouperSystem --debug=true
    Reading resource: grouper.client.properties, from: /Users/mchyzer/grouper/docker/grouperContainer/grouper.client.properties
    WebService: connecting as user: 'GrouperSystem'
    WebService: connecting to URL: 'https://localhost/grouper-ws/servicesRest/2.5.0-SNAPSHOT/subjects'

    ################ REQUEST START (indented) ###############

    POST /grouper-ws/servicesRest/2.5.0-SNAPSHOT/subjects HTTP/1.1
    Connection: close
    Authorization: Basic xxxxxxxxxxxxxxxx
    User-Agent: Jakarta Commons-HttpClient/3.1
    Host: localhost:-1
    Content-Length: 161
    Content-Type: text/xml; charset=UTF-8

    <WsRestGetSubjectsRequest>
      <wsSubjectLookups>
        <WsSubjectLookup>
          <subjectId>GrouperSystem</subjectId>
        </WsSubjectLookup>
      </wsSubjectLookups>
    </WsRestGetSubjectsRequest>

    ################ REQUEST END ###############


    ################ RESPONSE START (indented) ###############

    HTTP/1.1 200 OK
    Date: Mon, 04 May 2020 02:38:16 GMT
    Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips
    Strict-Transport-Security: max-age=15768000
    Set-Cookie: JSESSIONID=xxxxxxxxxxxx; HttpOnly
    X-Grouper-resultCode: SUCCESS
    X-Grouper-success: T
    X-Grouper-resultCode2: NONE
    Content-Type: application/xml;charset=UTF-8
    Connection: close
    Transfer-Encoding: chunked

    <WsGetSubjectsResults>
      <wsSubjects>
        <WsSubject>
          <resultCode>SUCCESS</resultCode>
          <success>T</success>
          <id>GrouperSystem</id>
          <name>GrouperSysAdmin</name>
          <sourceId>g:isa</sourceId>
        </WsSubject>
      </wsSubjects>
      <resultMetadata>
        <resultCode>SUCCESS</resultCode>
        <resultMessage>Queried 1 subjects</resultMessage>
        <success>T</success>
      </resultMetadata>
      <responseMetadata>
        <resultWarnings></resultWarnings>
        <millis>19</millis>
        <serverVersion>2.5.0-SNAPSHOT</serverVersion>
      </responseMetadata>
    </WsGetSubjectsResults>

    ################ RESPONSE END ###############


    Output template: Index: ${index}: success: ${success}, code: ${wsSubject.resultCode}, subject: ${wsSubject.id}, available variables: wsGetSubjectsResults, grouperClientUtils, index, wsSubject, wsGroup, success
    Index: 0: success: T, code: SUCCESS, subject: GrouperSystem
    Elapsed time: 612ms
    grouperContainer $

  • No labels