Class GitLabSecurityRealm

All Implemented Interfaces:
ExtensionPoint, Describable<SecurityRealm>

public class GitLabSecurityRealm extends SecurityRealm
Implementation of the AbstractPasswordBasedSecurityRealm that uses gitlab oauth to verify the user can login. This is based on the GitLabSecurityRealm from the gitlab-auth-plugin written by Alex Ackerman.
  • Constructor Details

    • GitLabSecurityRealm

      @DataBoundConstructor public GitLabSecurityRealm(String gitlabWebUri, String gitlabApiUri, String clientID, String clientSecret)
      Parameters:
      gitlabWebUri - The URI to the root of the web UI for GitLab or GitLab Enterprise, including the protocol (e.g. https).
      gitlabApiUri - The URI to the root of the API for GitLab or GitLab Enterprise, including the protocol (e.g. https).
      clientID - The client ID for the created OAuth Application.
      clientSecret - The client secret for the created GitLab OAuth Application. Should be encrypted value of a Secret, for compatibility also plain text values are accepted.
  • Method Details

    • getGitlabApiUri

      public String getGitlabApiUri()
      Returns:
      the URI to the API root of GitLab or GitLab Enterprise.
    • getGitlabWebUri

      public String getGitlabWebUri()
      Returns:
      the uri to the web root of GitLab (varies for GitLab Enterprise Edition)
    • getClientID

      public String getClientID()
      Returns:
      the clientID
    • getClientSecret

      public Secret getClientSecret()
      Used by jelly
      Returns:
      the client secret
    • doCommenceLogin

      public org.kohsuke.stapler.HttpResponse doCommenceLogin(org.kohsuke.stapler.StaplerRequest2 request, @QueryParameter String from, @Header("Referer") String referer) throws IOException
      Throws:
      IOException
    • doFinishLogin

      public org.kohsuke.stapler.HttpResponse doFinishLogin(org.kohsuke.stapler.StaplerRequest2 request) throws IOException
      This is where the user comes back to at the end of the OpenID redirect ping-pong.
      Throws:
      IOException
    • allowsSignup

      public boolean allowsSignup()
      Overrides:
      allowsSignup in class SecurityRealm
    • createSecurityComponents

      public SecurityRealm.SecurityComponents createSecurityComponents()
      Specified by:
      createSecurityComponents in class SecurityRealm
    • getLoginUrl

      public String getLoginUrl()
      Overrides:
      getLoginUrl in class SecurityRealm
    • getPostLogOutUrl2

      protected String getPostLogOutUrl2(org.kohsuke.stapler.StaplerRequest2 req, org.springframework.security.core.Authentication auth)
      Overrides:
      getPostLogOutUrl2 in class SecurityRealm
    • getDescriptor

      public GitLabSecurityRealm.DescriptorImpl getDescriptor()
      Specified by:
      getDescriptor in interface Describable<SecurityRealm>
      Overrides:
      getDescriptor in class SecurityRealm
    • loadUserByUsername2

      public org.springframework.security.core.userdetails.UserDetails loadUserByUsername2(String username) throws org.springframework.security.core.userdetails.UsernameNotFoundException
      Overrides:
      loadUserByUsername2 in class SecurityRealm
      Parameters:
      username -
      Throws:
      org.springframework.security.core.userdetails.UsernameNotFoundException
    • equals

      public boolean equals(Object object)
      Compare an object against this instance for equivalence.
      Overrides:
      equals in class Object
      Parameters:
      object - An object to campare this instance to.
      Returns:
      true if the objects are the same instance and configuration.
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • loadGroupByGroupname2

      public GroupDetails loadGroupByGroupname2(String groupName, boolean fetchMembers) throws org.springframework.security.core.userdetails.UsernameNotFoundException
      Overrides:
      loadGroupByGroupname2 in class SecurityRealm
      Parameters:
      groupName -
      Throws:
      org.springframework.security.core.userdetails.UsernameNotFoundException